请求对象(通常传递到回调方法,这意味着你可以随意命名,通常命名为 req 或 request)的生命周期始于 Node 的一个核心对象 http.IncomingMessage 的实例。Express 添加了一些附加功能。我们来看看请求对象中最有用的属性和方法(除了来自 Node 的
req.headers 和req.url,所有这些方法都由 Express 添加)。
req.params
一个对象,包含映射到指定的路线“参数”属性的对象。
例如,如果你有route/user/:name,那么“name”属性可作为req.params.name。该对象默认为{}。
req.query
一个对象,包含以键值对存放的查询字符串参数(通常称为 GET 请求参数)
req.body
一个对象,包含 POST 请求参数。这样命名是因为 POST 请求参数在 REQUEST 正文中传
递,而不像查询字符串在 URL 中传递。要使 req.body 可用,需要中间件能够解析请求
正文内容类型,我们将在第 10 章进行详细介绍。
req.route
关于当前匹配路由的信息。主要用于路由调试。
req.cookies/req.singnedCookies
一个对象,包含从客户端传递过来的 cookies 值。
req.headers
从客户端接收到的请求报头。
req.accepts([types])
一个简便的方法,用来确定客户端是否接受一个或一组指定的类型(可选类型可以是单个
的 MIME 类型,如 application/json、一个逗号分隔集合或是一个数组)。写公共
API 的人对该方法很感兴趣。假定浏览器默认始终接受 HTML。
req.ip
客户端的 IP 地址。
req.path
请求路径(不包含协议、主机、端口或查询字符串)。
req.host
一个简便的方法,用来返回客户端所报告的主机名。这些信息可以伪造,所以不应该用
于安全目的。
req.secure
一个简便属性,如果连接是安全的,将返回 true。等同于 req.protocol===’https’。