FaaSContext
Hierarchy
- IMidwayContext<FaaSHTTPContext>
- FaaSContext
Index
Properties
Methods
Properties
accept
body
cookies
FaaS Cookies Object
env
etag
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"';
header
Return request header.
headers
Return request header, alias as request.header
host
Get parsed host from event
hostname
Get parsed host from event
ip
Request remote address.
lastModified
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
Return parsed response Content-Length when present.
Set Content-Length field to n
.
logger
method
Get request method.
originContext
originEvent
FaaS original event object.
originalUrl
params
Get parsed params
path
Get request pathname.
query
Get parsed query-string.
req
It’s a http request mock object, please don’t use it directly.
request
FaaS http request object
requestContext
res
It’s a http response mock object, please don’t use it directly.
response
FaaS http response object
startTime
state
FaaS Context State
status
Get/Set response status code.
streaming
Get/Set streaming response.
this.streaming = true;
type
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
Get/Set request URL.
Methods
accepts
Check if the given
type(s)
is acceptable, returning the best match when true, otherwiseundefined
, 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
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
Return accepted encodings or best fit based on
encodings
.Given
Accept-Encoding: gzip, deflate
an array sorted by quality is returned:['gzip', 'deflate']
acceptsLanguages
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 additional header
field
with valueval
.Examples:
this.append('Link', ['<http://localhost/>', '<http://localhost:3000/>']);
this.append('Set-Cookie', 'foo=bar; Path=/; HttpOnly');
this.append('Warning', '199 Miscellaneous warning');
get
Return request header. If the header is not set, will return an empty string.
The
Referrer
header field is special-cased, bothReferrer
andReferer
are interchangeable.Examples:
this.get('Content-Type');
// => "text/plain"
this.get('content-type');
// => "text/plain"
this.get('Something');
// => ''
getApp
Get current related application instance.
getAttr
Get value from app attribute map
Type parameters
- T
getLogger
is
Check if the incoming request contains the “Content-Type” header field, and it contains any of the give mime
type
s. If there is no request body,null
is returned. If there is no content type,false
is returned. Otherwise, it returns the firsttype
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
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 header
field
.
set
Set header
field
toval
, 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
Set value to app attribute map
throw
Throw an error with
msg
and optionalstatus
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’));
Get/Set response body.