• Node.js Video Tutorials

Node.js - 请求对象



req 对象代表 HTTP 请求,并具有请求查询字符串、参数、正文、HTTP 标头等的属性。

请求对象属性

以下是与请求对象关联的一些属性列表。

序号 属性及描述
1

req.app

此属性保存对正在使用中间件的 Express 应用程序实例的引用。

2

req.baseUrl

安装路由实例的 URL 路径。

3

req.body

包含在请求正文中提交的数据的键值对。默认情况下,它是未定义的,在使用正文解析中间件(例如 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

当 trust proxy 设置为 true 时,此属性包含“X-Forwarded-For”请求标头中指定的 IP 地址数组。

9

req.originalUrl

此属性类似于 req.url;但是,它保留原始请求 URL,允许您自由地重写 req.url 以用于内部路由目的。

10

req.params

一个包含映射到命名路由“参数”的属性的对象。例如,如果您有路由 /user/:name,则“name”属性可用作 req.params.name。此对象默认为 {}。

11

req.path

包含请求 URL 的路径部分。

12

req.protocol

请求协议字符串,“http”或使用 TLS 请求时的“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 标头字段检查指定的 content types 是否可接受。以下是一些示例:

// 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"
nodejs_express_framework.htm
广告