@types/express-serve-static-core
- Version 5.0.2
- Published
- 44.4 kB
- 4 dependencies
- MIT license
Install
npm i @types/express-serve-static-core
yarn add @types/express-serve-static-core
pnpm add @types/express-serve-static-core
Overview
TypeScript definitions for express-serve-static-core
Index
Interfaces
Type Aliases
Namespaces
Interfaces
interface Application
interface Application<LocalsObj extends Record<string, any> = Record<string, any>> extends EventEmitter, IRouter, Express.Application {}
property get
get: ((name: string) => any) & IRouterMatcher<this>;
property locals
locals: LocalsObj & Locals;
property map
map: any;
property mountpath
mountpath: string | string[];
The app.mountpath property contains one or more path patterns on which a sub-app was mounted.
property on
on: (event: string, callback: (parent: Application) => void) => this;
The mount event is fired on a sub-app, when it is mounted on a parent app. The parent app is passed to the callback function.
NOTE: Sub-apps will: - Not inherit the value of settings that have a default value. You must set the value in the sub-app. - Inherit the value of settings with no default value.
property resource
resource: any;
property router
router: string;
property routes
routes: any;
The app.routes object houses all of the routes defined mapped by the associated HTTP verb. This object may be used for introspection capabilities, for example Express uses this internally not only for routing but to provide default OPTIONS behaviour unless app.options() is used. Your application or framework may also remove routes by simply by removing them from this object.
property settings
settings: any;
property use
use: ApplicationRequestHandler<this>;
method defaultConfiguration
defaultConfiguration: () => void;
Initialize application configuration.
method disable
disable: (setting: string) => this;
Disable
setting
.
method disabled
disabled: (setting: string) => boolean;
Check if
setting
is disabled.app.disabled('foo') // => true
app.enable('foo') app.disabled('foo') // => false
method enable
enable: (setting: string) => this;
Enable
setting
.
method enabled
enabled: (setting: string) => boolean;
Check if
setting
is enabled (truthy).app.enabled('foo') // => false
app.enable('foo') app.enabled('foo') // => true
method engine
engine: ( ext: string, fn: ( path: string, options: object, callback: (e: any, rendered?: string) => void ) => void) => this;
Register the given template engine callback
fn
asext
.By default will
require()
the engine based on the file extension. For example if you try to render a "foo.jade" file Express will invoke the following internally:app.engine('jade', require('jade').__express);
For engines that do not provide
.__express
out of the box, or if you wish to "map" a different extension to the template engine you may use this method. For example mapping the EJS template engine to ".html" files:app.engine('html', require('ejs').renderFile);
In this case EJS provides a
.renderFile()
method with the same signature that Express expects:(path, options, callback)
, though note that it aliases this method asejs.__express
internally so if you're using ".ejs" extensions you dont need to do anything.Some template engines do not follow this convention, the [Consolidate.js](https://github.com/visionmedia/consolidate.js) library was created to map all of node's popular template engines to follow this convention, thus allowing them to work seamlessly within Express.
method init
init: () => void;
Initialize the server.
- setup default configuration - setup default middleware - setup route reflection methods
method listen
listen: { ( port: number, hostname: string, backlog: number, callback?: () => void ): http.Server; (port: number, hostname: string, callback?: () => void): http.Server; (port: number, callback?: () => void): http.Server; (callback?: () => void): http.Server; (path: string, callback?: () => void): http.Server; (handle: any, listeningListener?: () => void): http.Server;};
Listen for connections.
A node
http.Server
is returned, with this application (which is aFunction
) as its callback. If you wish to create both an HTTP and HTTPS server you may do so with the "http" and "https" modules as shown here:var http = require('http') , https = require('https') , express = require('express') , app = express();
http.createServer(app).listen(80); https.createServer({ ... }, app).listen(443);
method param
param: (name: string | string[], handler: RequestParamHandler) => this;
method path
path: () => string;
Return the app's absolute pathname based on the parent(s) that have mounted it.
For example if the application was mounted as "/admin", which itself was mounted as "/blog" then the return value would be "/blog/admin".
method render
render: { ( name: string, options?: object, callback?: (err: Error, html: string) => void ): void; (name: string, callback: (err: Error, html: string) => void): void;};
Render the given view
name
name withoptions
and a callback accepting an error and the rendered template string.Example:
app.render('email', { name: 'Tobi' }, function(err, html){ // ... })
method set
set: (setting: string, val: any) => this;
Assign
setting
toval
, or returnsetting
's value.app.set('foo', 'bar'); app.get('foo'); // => "bar" app.set('foo', ['bar', 'baz']); app.get('foo'); // => ["bar", "baz"]
Mounted servers inherit their parent server's settings.
call signature
(req: Request | http.IncomingMessage, res: Response | http.ServerResponse): any;
Express instance itself is a request handler, which could be invoked without third argument.
interface CookieOptions
interface CookieOptions {}
Options passed down into
res.cookie
https://expressjs.com/en/api.html#res.cookie
property domain
domain?: string | undefined;
Domain name for the cookie. Defaults to the domain name of the app.
property encode
encode?: ((val: string) => string) | undefined;
A synchronous function used for cookie value encoding. Defaults to encodeURIComponent.
property expires
expires?: Date | undefined;
Expiry date of the cookie in GMT. If not specified or set to 0, creates a session cookie.
property httpOnly
httpOnly?: boolean | undefined;
Flags the cookie to be accessible only by the web server.
property maxAge
maxAge?: number | undefined;
Convenient option for setting the expiry time relative to the current time in **milliseconds**.
property partitioned
partitioned?: boolean | undefined;
Marks the cookie to use partioned storage.
property path
path?: string | undefined;
Path for the cookie. Defaults to “/”.
property priority
priority?: 'low' | 'medium' | 'high';
Value of the “Priority” Set-Cookie attribute. https://datatracker.ietf.org/doc/html/draft-west-cookie-priority-00#section-4.3
property sameSite
sameSite?: boolean | 'lax' | 'strict' | 'none' | undefined;
Value of the “SameSite” Set-Cookie attribute. https://tools.ietf.org/html/draft-ietf-httpbis-cookie-same-site-00#section-4.1.1.
property secure
secure?: boolean | undefined;
Marks the cookie to be used with HTTPS only.
property signed
signed?: boolean | undefined;
Indicates if the cookie should be signed.
interface Dictionary
interface Dictionary<T> {}
index signature
[key: string]: T;
interface DownloadOptions
interface DownloadOptions extends SendOptions {}
property headers
headers?: Record<string, unknown>;
Object containing HTTP headers to serve with the file. The header
Content-Disposition
will be overridden by the filename argument.
interface Express
interface Express extends Application {}
interface Handler
interface Handler extends RequestHandler {}
interface ILayer
interface ILayer {}
property handle
handle: (req: Request, res: Response, next: NextFunction) => any;
property keys
keys: string[];
property method
method: string;
property name
name: string | '<anonymous>';
property params
params?: Record<string, any>;
property path
path?: string;
property regexp
regexp: RegExp;
property route
route?: IRoute;
interface IRoute
interface IRoute<Route extends string = string> {}
property "m-search"
'm-search': IRouterHandler<this, Route>;
property all
all: IRouterHandler<this, Route>;
property checkout
checkout: IRouterHandler<this, Route>;
property copy
copy: IRouterHandler<this, Route>;
property delete
delete: IRouterHandler<this, Route>;
property get
get: IRouterHandler<this, Route>;
property head
head: IRouterHandler<this, Route>;
property lock
lock: IRouterHandler<this, Route>;
property merge
merge: IRouterHandler<this, Route>;
property mkactivity
mkactivity: IRouterHandler<this, Route>;
property mkcol
mkcol: IRouterHandler<this, Route>;
property move
move: IRouterHandler<this, Route>;
property notify
notify: IRouterHandler<this, Route>;
property options
options: IRouterHandler<this, Route>;
property patch
patch: IRouterHandler<this, Route>;
property path
path: string;
property post
post: IRouterHandler<this, Route>;
property purge
purge: IRouterHandler<this, Route>;
property put
put: IRouterHandler<this, Route>;
property report
report: IRouterHandler<this, Route>;
property search
search: IRouterHandler<this, Route>;
property stack
stack: ILayer[];
property subscribe
subscribe: IRouterHandler<this, Route>;
property trace
trace: IRouterHandler<this, Route>;
property unlock
unlock: IRouterHandler<this, Route>;
property unsubscribe
unsubscribe: IRouterHandler<this, Route>;
interface IRouter
interface IRouter extends RequestHandler {}
property "m-search"
'm-search': IRouterMatcher<this>;
property all
all: IRouterMatcher<this, 'all'>;
Special-cased "all" method, applying the given route
path
, middleware, and callback to _every_ HTTP method.
property checkout
checkout: IRouterMatcher<this>;
property connect
connect: IRouterMatcher<this>;
property copy
copy: IRouterMatcher<this>;
property delete
delete: IRouterMatcher<this, 'delete'>;
property get
get: IRouterMatcher<this, 'get'>;
property head
head: IRouterMatcher<this, 'head'>;
property link
link: IRouterMatcher<this>;
property lock
lock: IRouterMatcher<this>;
property merge
merge: IRouterMatcher<this>;
property mkactivity
mkactivity: IRouterMatcher<this>;
property mkcol
mkcol: IRouterMatcher<this>;
property move
move: IRouterMatcher<this>;
property notify
notify: IRouterMatcher<this>;
property options
options: IRouterMatcher<this, 'options'>;
property patch
patch: IRouterMatcher<this, 'patch'>;
property post
post: IRouterMatcher<this, 'post'>;
property propfind
propfind: IRouterMatcher<this>;
property proppatch
proppatch: IRouterMatcher<this>;
property purge
purge: IRouterMatcher<this>;
property put
put: IRouterMatcher<this, 'put'>;
property report
report: IRouterMatcher<this>;
property search
search: IRouterMatcher<this>;
property stack
stack: ILayer[];
Stack of configured routes
property subscribe
subscribe: IRouterMatcher<this>;
property trace
trace: IRouterMatcher<this>;
property unlink
unlink: IRouterMatcher<this>;
property unlock
unlock: IRouterMatcher<this>;
property unsubscribe
unsubscribe: IRouterMatcher<this>;
property use
use: IRouterHandler<this> & IRouterMatcher<this>;
method param
param: (name: string, handler: RequestParamHandler) => this;
Map the given param placeholder
name
(s) to the given callback(s).Parameter mapping is used to provide pre-conditions to routes which use normalized placeholders. For example a _:user_id_ parameter could automatically load a user's information from the database without any additional code,
The callback uses the samesignature as middleware, the only differencing being that the value of the placeholder is passed, in this case the _id_ of the user. Once the
next()
function is invoked, just like middleware it will continue on to execute the route, or subsequent parameter functions.app.param('user_id', function(req, res, next, id){ User.find(id, function(err, user){ if (err) { next(err); } else if (user) { req.user = user; next(); } else { next(new Error('failed to load user')); } }); });
method route
route: { <T extends string>(prefix: T): IRoute<T>; (prefix: PathParams): IRoute<string>;};
interface IRouterHandler
interface IRouterHandler<T, Route extends string = string> {}
call signature
(...handlers: Array<RequestHandler<RouteParameters<Route>>>): T;
call signature
(...handlers: Array<RequestHandlerParams<RouteParameters<Route>>>): T;
call signature
< P = RouteParameters<Route>, ResBody = any, ReqBody = any, ReqQuery = ParsedQs, LocalsObj extends Record<string, any> = Record<string, any>>( // (This generic is meant to be passed explicitly.) // eslint-disable-next-line @definitelytyped/no-unnecessary-generics ...handlers: Array<RequestHandler<P, ResBody, ReqBody, ReqQuery, LocalsObj>>): T;
call signature
< P = RouteParameters<Route>, ResBody = any, ReqBody = any, ReqQuery = ParsedQs, LocalsObj extends Record<string, any> = Record<string, any>>( // (This generic is meant to be passed explicitly.) // eslint-disable-next-line @definitelytyped/no-unnecessary-generics ...handlers: Array< RequestHandlerParams<P, ResBody, ReqBody, ReqQuery, LocalsObj> >): T;
call signature
< P = ParamsDictionary, ResBody = any, ReqBody = any, ReqQuery = ParsedQs, LocalsObj extends Record<string, any> = Record<string, any>>( // (This generic is meant to be passed explicitly.) // eslint-disable-next-line @definitelytyped/no-unnecessary-generics ...handlers: Array<RequestHandler<P, ResBody, ReqBody, ReqQuery, LocalsObj>>): T;
call signature
< P = ParamsDictionary, ResBody = any, ReqBody = any, ReqQuery = ParsedQs, LocalsObj extends Record<string, any> = Record<string, any>>( // (This generic is meant to be passed explicitly.) // eslint-disable-next-line @definitelytyped/no-unnecessary-generics ...handlers: Array< RequestHandlerParams<P, ResBody, ReqBody, ReqQuery, LocalsObj> >): T;
interface IRouterMatcher
interface IRouterMatcher< T, Method extends | 'all' | 'get' | 'post' | 'put' | 'delete' | 'patch' | 'options' | 'head' = any> {}
call signature
< Route extends string, P = RouteParameters<Route>, ResBody = any, ReqBody = any, ReqQuery = ParsedQs, LocalsObj extends Record<string, any> = Record<string, any>>( // (it's used as the default type parameter for P) path: Route, // (This generic is meant to be passed explicitly.) ...handlers: Array<RequestHandler<P, ResBody, ReqBody, ReqQuery, LocalsObj>>): T;
call signature
< Path extends string, P = RouteParameters<Path>, ResBody = any, ReqBody = any, ReqQuery = ParsedQs, LocalsObj extends Record<string, any> = Record<string, any>>( // (it's used as the default type parameter for P) path: Path, // (This generic is meant to be passed explicitly.) ...handlers: Array< RequestHandlerParams<P, ResBody, ReqBody, ReqQuery, LocalsObj> >): T;
call signature
< P = ParamsDictionary, ResBody = any, ReqBody = any, ReqQuery = ParsedQs, LocalsObj extends Record<string, any> = Record<string, any>>( path: PathParams, // (This generic is meant to be passed explicitly.) ...handlers: Array<RequestHandler<P, ResBody, ReqBody, ReqQuery, LocalsObj>>): T;
call signature
< P = ParamsDictionary, ResBody = any, ReqBody = any, ReqQuery = ParsedQs, LocalsObj extends Record<string, any> = Record<string, any>>( path: PathParams, // (This generic is meant to be passed explicitly.) ...handlers: Array< RequestHandlerParams<P, ResBody, ReqBody, ReqQuery, LocalsObj> >): T;
call signature
(path: PathParams, subApplication: Application): T;
interface Locals
interface Locals extends Express.Locals {}
interface MediaType
interface MediaType {}
interface NextFunction
interface NextFunction {}
call signature
(err?: any): void;
call signature
(deferToNext: 'router'): void;
"Break-out" of a router by calling {next('router')};
See Also
{https://expressjs.com/en/guide/using-middleware.html#middleware.router}
call signature
(deferToNext: 'route'): void;
"Break-out" of a route by calling {next('route')};
See Also
{https://expressjs.com/en/guide/using-middleware.html#middleware.application}
interface ParamsDictionary
interface ParamsDictionary {}
index signature
[key: string]: string;
interface Request
interface Request< P = ParamsDictionary, ResBody = any, ReqBody = any, ReqQuery = ParsedQs, LocalsObj extends Record<string, any> = Record<string, any>> extends http.IncomingMessage, Express.Request {}
Parameter P
For most requests, this should be
ParamsDictionary
, but if you're using this in a route handler for a route that uses aRegExp
or a wildcardstring
path (e.g.'/user/*'
), thenreq.params
will be an array, in which case you should useParamsArray
instead.Example 1
app.get('/user/:id', (req, res) => res.send(req.params.id)); // implicitly
ParamsDictionary
app.get(/user/(.*)/, (req, res) => res.send(req.params[0])); app.get('/user/*', (req, res) => res.send(req.params[0]));See Also
https://expressjs.com/en/api.html#req.params
property accepted
accepted: MediaType[];
Return an array of Accepted media types ordered from highest quality to lowest.
property app
app: Application;
property baseUrl
baseUrl: string;
property body
body: ReqBody;
property cookies
cookies: any;
property fresh
readonly fresh: boolean;
Check if the request is fresh, aka Last-Modified and/or the ETag still match.
property host
readonly host: string;
Contains the host derived from the
Host
HTTP header.
property hostname
readonly hostname: string;
Contains the hostname derived from the
Host
HTTP header.
property ip
readonly ip: string | undefined;
Return the remote address, or when "trust proxy" is
true
return the upstream addr.Value may be undefined if the
req.socket
is destroyed (for example, if the client disconnected).
property ips
readonly ips: string[];
When "trust proxy" is
true
, parse the "X-Forwarded-For" ip address list.For example if the value were "client, proxy1, proxy2" you would receive the array
["client", "proxy1", "proxy2"]
where "proxy2" is the furthest down-stream.
property method
method: string;
property next
next?: NextFunction | undefined;
property originalUrl
originalUrl: string;
property params
params: P;
property path
readonly path: string;
Short-hand for
url.parse(req.url).pathname
.
property protocol
readonly protocol: string;
Return the protocol string "http" or "https" when requested with TLS. When the "trust proxy" setting is enabled the "X-Forwarded-Proto" header field will be trusted. If you're running behind a reverse proxy that supplies https for you this may be enabled.
property query
query: ReqQuery;
property res
res?: Response<ResBody, LocalsObj> | undefined;
After middleware.init executed, Request will contain res and next properties See: express/lib/middleware/init.js
property route
route: any;
property secure
readonly secure: boolean;
Short-hand for:
req.protocol == 'https'
property signedCookies
signedCookies: any;
property stale
readonly stale: boolean;
Check if the request is stale, aka "Last-Modified" and / or the "ETag" for the resource has changed.
property subdomains
readonly subdomains: string[];
Return subdomains as an array.
Subdomains are the dot-separated parts of the host before the main domain of the app. By default, the domain of the app is assumed to be the last two parts of the host. This can be changed by setting "subdomain offset".
For example, if the domain is "tobi.ferrets.example.com": If "subdomain offset" is not set, req.subdomains is
["ferrets", "tobi"]
. If "subdomain offset" is 3, req.subdomains is["tobi"]
.
property url
url: string;
property xhr
readonly xhr: boolean;
Check if the request was an _XMLHttpRequest_.
method accepts
accepts: { (): string[]; (type: string): string | false; (type: string[]): string | false; (...type: string[]): string | false;};
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", a comma-delimted list such as "json, html, text/plain", 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 req.accepts('html'); // => "html"
// Accept: text/*, application/json req.accepts('html'); // => "html" req.accepts('text/html'); // => "text/html" req.accepts('json, text'); // => "json" req.accepts('application/json'); // => "application/json"
// Accept: text/*, application/json req.accepts('image/png'); req.accepts('png'); // => false
// Accept: text/*;q=.5, application/json req.accepts(['html', 'json']); req.accepts('html, json'); // => "json"
method acceptsCharsets
acceptsCharsets: { (): string[]; (charset: string): string | false; (charset: string[]): string | false; (...charset: string[]): string | false;};
Returns the first accepted charset of the specified character sets, based on the request's Accept-Charset HTTP header field. If none of the specified charsets is accepted, returns false.
For more information, or if you have issues or concerns, see accepts.
method acceptsEncodings
acceptsEncodings: { (): string[]; (encoding: string): string | false; (encoding: string[]): string | false; (...encoding: string[]): string | false;};
Returns the first accepted encoding of the specified encodings, based on the request's Accept-Encoding HTTP header field. If none of the specified encodings is accepted, returns false.
For more information, or if you have issues or concerns, see accepts.
method acceptsLanguages
acceptsLanguages: { (): string[]; (lang: string): string | false; (lang: string[]): string | false; (...lang: string[]): string | false;};
Returns the first accepted language of the specified languages, based on the request's Accept-Language HTTP header field. If none of the specified languages is accepted, returns false.
For more information, or if you have issues or concerns, see accepts.
method get
get: { (name: 'set-cookie'): string[] | undefined; (name: string): string };
Return request header.
The
Referrer
header field is special-cased, bothReferrer
andReferer
are interchangeable.Examples:
req.get('Content-Type'); // => "text/plain"
req.get('content-type'); // => "text/plain"
req.get('Something'); // => undefined
Aliased as
req.header()
.
method header
header: { (name: 'set-cookie'): string[] | undefined; (name: string): string };
method is
is: (type: string | string[]) => string | false | null;
Check if the incoming request contains the "Content-Type" header field, and it contains the give mime
type
.Examples:
// With Content-Type: text/html; charset=utf-8 req.is('html'); req.is('text/html'); req.is('text/*'); // => true
// When Content-Type is application/json req.is('json'); req.is('application/json'); req.is('application/*'); // => true
req.is('html'); // => false
method range
range: ( size: number, options?: RangeParserOptions) => RangeParserRanges | RangeParserResult | undefined;
Parse Range header field, capping to the given
size
.Unspecified ranges such as "0-" require knowledge of your resource length. In the case of a byte range this is of course the total number of bytes. If the Range header field is not given
undefined
is returned. If the Range header field is given, return value is a result of range-parser. See more ./types/range-parser/index.d.tsNOTE: remember that ranges are inclusive, so for example "Range: users=0-3" should respond with 4 users when available, not 3.
interface RequestHandler
interface RequestHandler< P = ParamsDictionary, ResBody = any, ReqBody = any, ReqQuery = ParsedQs, LocalsObj extends Record<string, any> = Record<string, any>> {}
call signature
( req: Request<P, ResBody, ReqBody, ReqQuery, LocalsObj>, res: Response<ResBody, LocalsObj>, next: NextFunction): void | Promise<void>;
interface RequestRanges
interface RequestRanges extends RangeParserRanges {}
interface Response
interface Response< ResBody = any, LocalsObj extends Record<string, any> = Record<string, any>, StatusCode extends number = number> extends http.ServerResponse, Express.Response {}
property app
app: Application;
property charset
charset: string;
property headersSent
headersSent: boolean;
property json
json: Send<ResBody, this>;
Send JSON response.
Examples:
res.json(null); res.json({ user: 'tj' }); res.status(500).json('oh noes!'); res.status(404).json('I dont have that');
property jsonp
jsonp: Send<ResBody, this>;
Send JSON response with JSONP callback support.
Examples:
res.jsonp(null); res.jsonp({ user: 'tj' }); res.status(500).jsonp('oh noes!'); res.status(404).jsonp('I dont have that');
property locals
locals: LocalsObj & Locals;
property req
req: Request;
After middleware.init executed, Response will contain req property See: express/lib/middleware/init.js
property send
send: Send<ResBody, this>;
Send a response.
Examples:
res.send(new Buffer('wahoo')); res.send({ some: 'json' }); res.send('some html'); res.status(404).send('Sorry, cant find that');
method append
append: (field: string, value?: string[] | string) => this;
Appends the specified value to the HTTP response header field. If the header is not already set, it creates the header with the specified value. The value parameter can be a string or an array.
Note: calling res.set() after res.append() will reset the previously-set header value.
4.11.0
method attachment
attachment: (filename?: string) => this;
Set _Content-Disposition_ header to _attachment_ with optional
filename
.
method clearCookie
clearCookie: (name: string, options?: CookieOptions) => this;
Clear cookie
name
.
method contentType
contentType: (type: string) => this;
Set _Content-Type_ response header with
type
throughmime.lookup()
when it does not contain "/", or set the Content-Type totype
otherwise.Examples:
res.type('.html'); res.type('html'); res.type('json'); res.type('application/json'); res.type('png');
method cookie
cookie: { (name: string, val: string, options: CookieOptions): this; (name: string, val: any, options: CookieOptions): this; (name: string, val: any): this;};
Set cookie
name
toval
, with the givenoptions
.Options:
-
maxAge
max-age in milliseconds, converted toexpires
-signed
sign the cookie -path
defaults to "/"Examples:
// "Remember Me" for 15 minutes res.cookie('rememberme', '1', { expires: new Date(Date.now() + 900000), httpOnly: true });
// save as above res.cookie('rememberme', '1', { maxAge: 900000, httpOnly: true })
method download
download: { (path: string, fn?: Errback): void; (path: string, filename: string, fn?: Errback): void; ( path: string, filename: string, options: DownloadOptions, fn?: Errback ): void;};
Transfer the file at the given
path
as an attachment.Optionally providing an alternate attachment
filename
, and optional callbackfn(err)
. The callback is invoked when the data transfer is complete, or when an error has ocurred. Be sure to checkres.headersSent
if you plan to respond.The optional options argument passes through to the underlying res.sendFile() call, and takes the exact same parameters.
This method uses
res.sendFile()
.
method format
format: (obj: any) => this;
Respond to the Acceptable formats using an
obj
of mime-type callbacks.This method uses
req.accepted
, an array of acceptable types ordered by their quality values. When "Accept" is not present the _first_ callback is invoked, otherwise the first match is used. When no match is performed the server responds with 406 "Not Acceptable".Content-Type is set for you, however if you choose you may alter this within the callback using
res.type()
orres.set('Content-Type', ...)
.res.format({ 'text/plain': function(){ res.send('hey'); },
'text/html': function(){ res.send('hey'); },
'appliation/json': function(){ res.send({ message: 'hey' }); } });
In addition to canonicalized MIME types you may also use extnames mapped to these types:
res.format({ text: function(){ res.send('hey'); },
html: function(){ res.send('hey'); },
json: function(){ res.send({ message: 'hey' }); } });
By default Express passes an
Error
with a.status
of 406 tonext(err)
if a match is not made. If you provide a.default
callback it will be invoked instead.
method get
get: (field: string) => string | undefined;
Get value for header
field
.
method header
header: { (field: any): this; (field: string, value?: string | string[]): this };
method links
links: (links: any) => this;
Set Link header field with the given
links
.Examples:
res.links({ next: 'http://api.example.com/users?page=2', last: 'http://api.example.com/users?page=5' });
method location
location: (url: string) => this;
Set the location header to
url
.Examples:
res.location('/foo/bar').; res.location('http://example.com'); res.location('../login'); // /blog/post/1 -> /blog/login
Mounting:
When an application is mounted and
res.location()
is given a path that does _not_ lead with "/" it becomes relative to the mount-point. For example if the application is mounted at "/blog", the following would become "/blog/login".res.location('login');
While the leading slash would result in a location of "/login":
res.location('/login');
method redirect
redirect: { (url: string): void; (status: number, url: string): void };
Redirect to the given
url
with optional responsestatus
defaulting to 302.The resulting
url
is determined byres.location()
, so it will play nicely with mounted apps, relative paths, etc.Examples:
res.redirect('/foo/bar'); res.redirect('http://example.com'); res.redirect(301, 'http://example.com'); res.redirect('../login'); // /blog/post/1 -> /blog/login
method render
render: { ( view: string, options?: object, callback?: (err: Error, html: string) => void ): void; (view: string, callback?: (err: Error, html: string) => void): void;};
Render
view
with the givenoptions
and optional callbackfn
. When a callback function is given a response will _not_ be made automatically, otherwise a response of _200_ and _text/html_ is given.Options:
-
cache
boolean hinting to the engine it should cache -filename
filename of the view being rendered
method sendFile
sendFile: { (path: string, fn?: Errback): void; (path: string, options: SendFileOptions, fn?: Errback): void;};
Transfer the file at the given
path
.Automatically sets the _Content-Type_ response header field. The callback
fn(err)
is invoked when the transfer is complete or when an error occurs. Be sure to checkres.headersSent
if you wish to attempt responding, as the header and some data may have already been transferred.Options:
-
maxAge
defaulting to 0 (can be string converted byms
) -root
root directory for relative filenames -headers
object of headers to serve with file -dotfiles
serve dotfiles, defaulting to false; can be"allow"
to send themOther options are passed along to
send
.Examples:
The following example illustrates how
res.sendFile()
may be used as an alternative for thestatic()
middleware for dynamic situations. The code backingres.sendFile()
is actually the same code, so HTTP cache support etc is identical.app.get('/user/:uid/photos/:file', function(req, res){ var uid = req.params.uid , file = req.params.file;
req.user.mayViewFilesFrom(uid, function(yes){ if (yes) { res.sendFile('/uploads/' + uid + '/' + file); } else { res.send(403, 'Sorry! you cant see that.'); } }); });
public
method sendStatus
sendStatus: (code: StatusCode) => this;
Set the response HTTP status code to
statusCode
and send its string representation as the response body. http://expressjs.com/4x/api.html#res.sendStatusExamples:
res.sendStatus(200); // equivalent to res.status(200).send('OK') res.sendStatus(403); // equivalent to res.status(403).send('Forbidden') res.sendStatus(404); // equivalent to res.status(404).send('Not Found') res.sendStatus(500); // equivalent to res.status(500).send('Internal Server Error')
method set
set: { (field: any): this; (field: string, value?: string | string[]): this };
Set header
field
toval
, or pass an object of header fields.Examples:
res.set('Foo', ['bar', 'baz']); res.set('Accept', 'application/json'); res.set({ Accept: 'text/plain', 'X-API-Key': 'tobi' });
Aliased as
res.header()
.
method status
status: (code: StatusCode) => this;
Set status
code
.
method type
type: (type: string) => this;
Set _Content-Type_ response header with
type
throughmime.lookup()
when it does not contain "/", or set the Content-Type totype
otherwise.Examples:
res.type('.html'); res.type('html'); res.type('json'); res.type('application/json'); res.type('png');
method vary
vary: (field: string) => this;
Adds the field to the Vary response header, if it is not there already. Examples:
res.vary('User-Agent').render('docs');
interface Router
interface Router extends IRouter {}
interface SendFileOptions
interface SendFileOptions extends SendOptions {}
property headers
headers?: Record<string, unknown>;
Object containing HTTP headers to serve with the file.
Type Aliases
type ApplicationRequestHandler
type ApplicationRequestHandler<T> = IRouterHandler<T> & IRouterMatcher<T> & ((...handlers: RequestHandlerParams[]) => T);
type Errback
type Errback = (err: Error) => void;
type ErrorRequestHandler
type ErrorRequestHandler< P = ParamsDictionary, ResBody = any, ReqBody = any, ReqQuery = ParsedQs, LocalsObj extends Record<string, any> = Record<string, any>> = ( err: any, req: Request<P, ResBody, ReqBody, ReqQuery, LocalsObj>, res: Response<ResBody, LocalsObj>, next: NextFunction) => void | Promise<void>;
type Params
type Params = ParamsDictionary | ParamsArray;
type ParamsArray
type ParamsArray = string[];
type PathParams
type PathParams = string | RegExp | Array<string | RegExp>;
type Query
type Query = ParsedQs;
type RequestHandlerParams
type RequestHandlerParams< P = ParamsDictionary, ResBody = any, ReqBody = any, ReqQuery = ParsedQs, LocalsObj extends Record<string, any> = Record<string, any>> = | RequestHandler<P, ResBody, ReqBody, ReqQuery, LocalsObj> | ErrorRequestHandler<P, ResBody, ReqBody, ReqQuery, LocalsObj> | Array<RequestHandler<P> | ErrorRequestHandler<P>>;
type RequestParamHandler
type RequestParamHandler = ( req: Request, res: Response, next: NextFunction, value: any, name: string) => any;
type RouteParameters
type RouteParameters<Route extends string> = string extends Route ? ParamsDictionary : Route extends `${string}(${string}` ? ParamsDictionary // TODO: handling for regex parameters : Route extends `${string}:${infer Rest}` ? (GetRouteParameter<Rest> extends never ? ParamsDictionary : GetRouteParameter<Rest> extends `${infer ParamName}?` ? { [P in ParamName]?: string } : { [P in GetRouteParameter<Rest>]: string }) & (Rest extends `${GetRouteParameter<Rest>}${infer Next}` ? RouteParameters<Next> : unknown) : {};
type Send
type Send<ResBody = any, T = Response<ResBody>> = (body?: ResBody) => T;
Namespaces
namespace global
namespace global {}
namespace global.Express
namespace global.Express {}
interface Application
interface Application {}
interface Locals
interface Locals {}
interface Request
interface Request {}
interface Response
interface Response {}
Package Files (1)
Dependencies (4)
Dev Dependencies (0)
No dev dependencies.
Peer Dependencies (0)
No peer dependencies.
Badge
To add a badge like this oneto your package's README, use the codes available below.
You may also use Shields.io to create a custom badge linking to https://www.jsdocs.io/package/@types/express-serve-static-core
.
- Markdown[![jsDocs.io](https://img.shields.io/badge/jsDocs.io-reference-blue)](https://www.jsdocs.io/package/@types/express-serve-static-core)
- HTML<a href="https://www.jsdocs.io/package/@types/express-serve-static-core"><img src="https://img.shields.io/badge/jsDocs.io-reference-blue" alt="jsDocs.io"></a>
- Updated .
Package analyzed in 5843 ms. - Missing or incorrect documentation? Open an issue for this package.