Request Object
req对象表示HTTP请求,并具有请求查询字符串,参数,正文,HTTP标req属性。
请求对象属性
以下是与请求对象关联的一些属性的列表。
Sr.No. | 属性和描述 |
---|---|
1 | req.app 此属性包含对使用中间件的快速应用程序实例的引用。 |
2 | req.baseUrl 安装路由器实例的URL路径。 |
3 | req.body 包含请求正文中提交的键值对数据。 默认情况下,它是未定义的,并在使用正文body-parser等body-parser解析中间件时填充 |
4 | req.cookies 使用cookie-parser中间件时,此属性是包含请求发送的cookie的对象。 |
5 | req.fresh 指示请求是否“新鲜”。 它与req.stale相反。 |
6 | req.hostname 包含“Host”HTTP标头中的主机名。 |
7 | req.ip 请求的远程IP地址。 |
8 | req.ips 当信任代理设置为true时,此属性包含“X-Forwarded-For”请求标头中指定的IP地址数组。 |
9 | req.originalUrl 这个属性很像req.url; 但是,它保留了原始请求URL,允许您自由重写req.url以进行内部路由。 |
10 | req.params 包含映射到命名路由“parameters”的属性的对象。 例如,如果您有route/user /:name,那么“name”属性可用作req.params.name。 该对象默认为{}。 |
11 | req.path 包含请求URL的路径部分。 |
12 | req.protocol 使用TLS请求时,请求协议字符串“http”或“https”。 |
13 | req.query 包含路由中每个查询字符串参数的属性的对象。 |
14 | req.route 当前匹配的路由,一个字符串。 |
15 | req.secure 一个布尔值,如果建立了TLS连接,则为true。 |
16 | req.signedCookies 使用cookie-parser中间件时,此属性包含请求发送的已签名cookie,未签名且可以使用。 |
17 | req.stale 指示请求是否“陈旧”,并且与req.fresh相反。 |
18 | req.subdomains 请求域名中的一组子域。 |
19 | req.xhr 一个布尔值,如果请求的“X-Requested-With”头字段为“XMLHttpRequest”,则为true,表示请求是由客户端库(如jQuery)发出的。 |
请求对象方法
req.accepts(types)
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(field)
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(name [, 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"