跳到主要内容
版本:Next

FaaSContext

Hierarchy

Index

Properties

accept

accept: any

body

body: any

Get/Set response body.

cookies

cookies: Cookies

FaaS Cookies Object

env

env: string

etag

etag: string

Get/Set the ETag of a response. This will normalize the quotes if necessary.

this.response.etag = 'md5hashsum';
this.response.etag = '"md5hashsum"';
this.response.etag = 'W/"123456789"';
@param
@api

public

header

header: {}

Return request header.

headers

headers: {}

Return request header, alias as request.header

host

host: string

Get parsed host from event

hostname

hostname: string

Get parsed host from event

ip

ip: string

Request remote address.

lastModified

lastModified: Date

Get the Last-Modified date in Date form, if it exists. Set the Last-Modified date using a string or a Date.

this.response.lastModified = new Date();
this.response.lastModified = '2013-09-13';

length

length: number

Return parsed response Content-Length when present. Set Content-Length field to n.

logger

logger: ILogger

method

method: string

Get request method.

originContext

originContext: any

originEvent

originEvent: Record<string, any>

FaaS original event object.

originalUrl

originalUrl: string

params

params: {}

Get parsed params

path

path: string

Get request pathname.

query

query: {}

Get parsed query-string.

req

req: any

It’s a http request mock object, please don’t use it directly.

request

FaaS http request object

requestContext

requestContext: MidwayRequestContainer

res

res: any

It’s a http response mock object, please don’t use it directly.

response

FaaS http response object

startTime

startTime: number

state

state: State

FaaS Context State

status

status: number

Get/Set response status code.

streaming

streaming: boolean

Get/Set streaming response.

this.streaming = true;
@api

public

type

type: string

Return the response mime type void of parameters such as “charset”.

Set Content-Type response header with type through mime.lookup() when it does not contain a charset.

Examples:

this.type = '.html';
this.type = 'html';
this.type = 'json';
this.type = 'application/json';
this.type = 'png';

url

url: string

Get/Set request URL.

Methods

accepts

  • accepts(): boolean | string[]
  • accepts(...types: string[]): string | boolean
  • accepts(types: string[]): string | boolean
  • Check if the given type(s) is acceptable, returning the best match when true, otherwise undefined, in which case you should respond with 406 “Not Acceptable”.

    The type value may be a single mime type string such as “application/json”, the extension name such as “json” or an array ["json", "html", "text/plain"]. When a list or array is given the best match, if any is returned.

    Examples:

    // Accept: text/html
    this.accepts('html');
    // => "html"

    // Accept: text/*, application/json
    this.accepts('html');
    // => "html"
    this.accepts('text/html');
    // => "text/html"
    this.accepts('json', 'text');
    // => "json"
    this.accepts('application/json');
    // => "application/json"

    // Accept: text/*, application/json
    this.accepts('image/png');
    this.accepts('png');
    // => undefined

    // Accept: text/*;q=.5, application/json
    this.accepts(['html', 'json']);
    this.accepts('html', 'json');
    // => "json"

acceptsCharsets

  • acceptsCharsets(): boolean | string[]
  • acceptsCharsets(...charsets: string[]): string | boolean
  • acceptsCharsets(charsets: string[]): string | boolean
  • Return accepted charsets or best fit based on charsets.

    Given Accept-Charset: utf-8, iso-8859-1;q=0.2, utf-7;q=0.5 an array sorted by quality is returned:

    ['utf-8', 'utf-7', 'iso-8859-1']

acceptsEncodings

  • acceptsEncodings(): boolean | string[]
  • acceptsEncodings(...encodings: string[]): string | boolean
  • acceptsEncodings(encodings: string[]): string | boolean
  • Return accepted encodings or best fit based on encodings.

    Given Accept-Encoding: gzip, deflate an array sorted by quality is returned:

    ['gzip', 'deflate']

acceptsLanguages

  • acceptsLanguages(): boolean | string[]
  • acceptsLanguages(...langs: string[]): string | boolean
  • acceptsLanguages(langs: string[]): string | boolean
  • Return accepted languages or best fit based on langs.

    Given Accept-Language: en;q=0.8, es, pt an array sorted by quality is returned:

    ['es', 'pt', 'en']

append

  • append(field: string, val: string | string[]): void
  • Append additional header field with value val.

    Examples:

    this.append('Link', ['<http://localhost/>', '<http://localhost:3000/>']);
    this.append('Set-Cookie', 'foo=bar; Path=/; HttpOnly');
    this.append('Warning', '199 Miscellaneous warning');

get

  • get(field: string): string
  • Return request header. If the header is not set, will return an empty string.

    The Referrer header field is special-cased, both Referrer and Referer are interchangeable.

    Examples:

    this.get('Content-Type');
    // => "text/plain"

    this.get('content-type');
    // => "text/plain"

    this.get('Something');
    // => ''

getApp

  • getApp(): IMidwayBaseApplication<Context>
  • Get current related application instance.

getAttr

  • getAttr<T>(key: string): T
  • Get value from app attribute map


    Type parameters

    • T

getLogger

  • getLogger(name?: string): ILogger

is

  • is(...types: string[]): string | boolean
  • is(types: string[]): string | boolean
  • Check if the incoming request contains the “Content-Type” header field, and it contains any of the give mime types. If there is no request body, null is returned. If there is no content type, false is returned. Otherwise, it returns the first type that matches.

    Examples:

    // With Content-Type: text/html; charset=utf-8
    this.is('html'); // => 'html'
    this.is('text/html'); // => 'text/html'
    this.is('text/*', 'application/json'); // => 'text/html'

    // When Content-Type is application/json
    this.is('json', 'urlencoded'); // => 'json'
    this.is('application/json'); // => 'application/json'
    this.is('html', 'application/*'); // => 'application/json'

    this.is('html'); // => false

redirect

  • redirect(url: string, alt?: string): void
  • Perform a 302 redirect to url.

    The string “back” is special-cased to provide Referrer support, when Referrer is not present alt or “/“ is used.

    Examples:

    this.redirect(‘back’); this.redirect(‘back’, ‘/index.html’); this.redirect(‘/login’); this.redirect(‘http://google.com‘);

remove

  • remove(field: string): void
  • Remove header field.

set

  • set(field: {}): void
  • set(field: string, val: string | string[]): void
  • Set header field to val, or pass an object of header fields.

    Examples:

    this.set(‘Foo’, [‘bar’, ‘baz’]); this.set(‘Accept’, ‘application/json’); this.set({ Accept: ‘text/plain’, ‘X-API-Key’: ‘tobi’ });

setAttr

  • setAttr(key: string, value: any): any
  • Set value to app attribute map

throw

  • throw(message: string, code?: number, properties?: Record<string, unknown>): never
  • throw(status: number): never
  • throw(...properties: (string | number | Record<string, unknown>)[]): never
  • Throw an error with msg and optional status defaulting to 500. Note that these are user-level errors, and the message may be exposed to the client.

    this.throw(403) this.throw(‘name required’, 400) this.throw(400, ‘name required’) this.throw(‘something exploded’) this.throw(new Error(‘invalid’), 400); this.throw(400, new Error(‘invalid’));

    See: https://github.com/jshttp/http-errors