# 请求

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 标头解析器。
Last Updated: 6/17/2023, 6:57:19 PM