# 请求
req
对象表示 HTTP 请求,并具有请求查询字符串、参数、正文、HTTP 标头等的属性。在本文档中,按照惯例,该对象始终称为 req
(HTTP 响应为 res
),但其实际名称由您正在使用的回调函数的参数确定。
例如:
app.get('/user/:id', (req, res) => {
res.send(`user ${req.params.id}`)
})
但你也可以拥有:
app.get('/user/:id', (request, response) => {
response.send(`user ${request.params.id}`)
})
req
对象是Node自带请求对象的增强版,支持所有内置字段和方法。
方法 | 描述 |
---|---|
req.app | 此属性包含对使用中间件的 Express 应用程序实例的引用。 |
req.baseUrl | 安装路由实例的 URL 路径。 |
req.body | 包含在请求正文中提交的数据键值对。 |
req.cookies | 使用 cookie-parser 中间件时,该属性是一个包含请求发送的 cookie 的对象。 |
req.fresh | 缓存验证 |
req.host | 包含从 Host HTTP 标头派生的主机。 |
req.hostname | 包含从 Host HTTP 标头派生的主机名。 |
req.ip | 包含请求的远程 IP 地址。 |
req.ips | 包含请求标头中指定的 IP 地址数组。 |
req.method | 包含与请求的 HTTP 方法对应的字符串。 |
req.originalUrl | 返回原始请求的 URL,且可以自由重写。 |
req.params | 此属性是一个包含映射到命名路由 "parameters" 的属性的对象。 |
req.path | 包含请求 URL 的路径部分。 |
req.protocol | 包含请求协议字符串:http 或(对于 TLS 请求)https 。 |
req.query | 此属性是一个对象,其中包含路由中每个查询字符串参数的属性。 |
req.res | 此属性包含对与此请求对象相关的 响应对象 的引用。 |
req.route | 包含当前匹配的路由,一个字符串。 |
req.secure | 如果建立了 TLS 连接,则为 true 的布尔属性。 |
req.signedCookies | 使用 cookie-parser 中间件时,此属性包含请求发送的已签名 cookie,未签名且可供使用。 |
req.stale | 表示请求是否为 "stale,",与 req.fresh 相反。 |
req.subdomains | 请求域名中的子域数组。 |
req.xhr | 根据 X-Requested-With 判断该请求是由 jQuery 等客户端库发出的。 |
req.accepts | 根据请求的 Accept HTTP 标头字段检查指定的内容类型是否可接受。 |
req.acceptsCharsets | 根据请求的 Accept-Charset HTTP 标头字段返回指定字符集或 false 。 |
req.acceptsEncodings | 根据请求的 Accept-Encoding HTTP 标头字段返回指定的编码或 false 。 |
req.acceptsLanguages | 根据请求的 Accept-Language HTTP 标头字段,返回指定语言中第一个接受的语言。 |
req.get | 返回指定的 HTTP 请求头字段(不区分大小写的匹配)。 |
req.is | 根据 "Content-Type" 和 type 判断,返回匹配的内容类型。 |
req.range | Range 标头解析器。 |