req.对象 表示 HTTP 请求,并具有请求查询字符串、参数、正文、HTTP 标头等的属性。
请求对象属性
以下是与请求对象关联的几个属性的列表。
属性 | 描述 |
---|---|
req.app |
此属性包含对使用中间件的 express 应用程序实例的引用。 |
req.baseUrl |
挂载路由器实例的 URL 路径。 |
req.body |
包含在请求正文中提交的数据的键值对。默认情况下,它是 undefined,并在您使用 body-parser 等 body-parsing 中间件时填充 |
req.cookies |
使用 cookie-parser 中间件时,此属性是包含请求发送的 Cookie 的对象。 |
req.fresh |
指示请求是否为 “fresh”。它与 req.stale 相反。 |
req.hostname |
包含来自 “Host” HTTP 标头的主机名。 |
req.ip |
请求的远程 IP 地址。 |
req.ips |
当信任代理设置为 true 时,此属性包含在 “X-Forwarded-For” 请求标头中指定的 IP 地址数组。 |
req.originalUrl |
这个属性很像 req.url;但是,它保留了原始请求 URL,允许您自由重写 req.url 以用于内部路由目的。 |
req.params |
一个包含映射到命名路由 “parameters” 的属性的对象。例如,如果您有路由 /user/:name,则 “name” 属性 req.params.name。此对象默认为 {}。 |
req.path |
包含请求 URL 的 path 部分。 |
req.protocol |
请求协议字符串,使用 TLS 请求时为 “http” 或 “https”。 |
req.query |
一个对象,其中包含路由中每个查询字符串参数的属性。 |
req.route |
当前匹配的路由是一个字符串。 |
req.secure |
如果已建立 TLS 连接,则为 true 的布尔值。 |
req.signedCookies |
使用 cookie-parser 中间件时,此属性包含请求发送的已签名 cookie,未签名且可供使用。 |
req.stale |
指示请求是否为 “stale” ,并且与 req.fresh 相反。 |
req.subdomains |
请求域名中的子域数组。 |
req.xhr |
如果请求的 “X-Requested-With” 标头字段为 “XMLHttpRequest”,则为 true 的布尔值,指示请求是由 jQuery 等客户端库发出的。 |
请求对象方法
req.accepts(类型)
req.accepts(types)
此方法根据请求的 Accept HTTP 标头字段检查指定的内容类型是否可接受。以下是一些示例 -
// Accept: text/html
req.accepts('html');
// => "html"
// Accept: text/*, application/json
req.accepts('html');
// => "html"
req.accepts('text/html');
// => "text/html"
req.get(字段)
req.get(field)
该方法返回指定的 HTTP 请求头字段。以下是一些示例 -
req.get('Content-Type');
// => "text/plain"
req.get('content-type');
// => "text/plain"
req.get('Something');
// => undefined
req.is(type)
req.is(type)
如果传入请求的 “Content-Type” HTTP 标头字段与 type 参数指定的 MIME 类型匹配,则此方法返回 true。以下是一些示例 -
// With Content-Type: text/html; charset=utf-8
req.is('html');
req.is('text/html');
req.is('text/*');
// => true
req.param(名称 [, defaultValue])
req.param(name [, defaultValue])
此方法返回 param name 的值(如果存在)。以下是一些示例 -
// ?name=tobi
req.param('name')
// => "tobi"
// POST name=tobi
req.param('name')
// => "tobi"
// /user/tobi for /user/:name
req.param('name')
// => "tobi"