关于req.params、req.query、req.body等请求对象

请求对象,通常传递到回调方法,这意味着你可以随意命名,通常命名为 req 或 request 。

请求对象中最常用的属性和方法有:

req.params

一个数组,包含命名过的路由参数。

req.param(name)

返回命名的路由参数,或者 GET 请求或 POST 请求参数。建议你忽略此方法。

req.query

一个对象,包含以键值对存放的查询字符串参数(通常称为 GET 请求参数) 。

req.body

一个对象,包含 POST 请求参数。这样命名是因为 POST 请求参数在 REQUEST 正文中传递,而不像查询字符串在 URL 中传递。要使 req.body 可用,需要中间件能够解析请求正文内容类型。

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.xhr

一个简便属性,如果请求由 Ajax 发起将会返回 true 。

req.protocol

用于标识请求的协议( http 或 https ) 。

req.secure

一个简便属性,如果连接是安全的,将返回 true 。等同于req.protocol===’https’ 。

req.url/req.originalUrl

这些属性返回了路径和查询字符串(它们不包含协议、主机或端口) 。req.url 若是出于内部路由目的,则可以重写,但是req.orginalUrl

旨在保留原始请求和查询字符串。

req.acceptedLanguages

一个简便方法,用来返回客户端首选的一组(人类的)语言。这些信息是从请求报头中解析而来的。

posted @ 2019-06-27 19:46  ℳℓ马温柔  阅读(560)  评论(0编辑  收藏  举报