在 Express.js 应用中,请求对象(Request)和响应对象(Response)是回调函数的参数。

Express.js 请求对象代表了 HTTP 请求,其中包含了查询字符串、参数、请求体、HTTP 头部等信息。

语法:

app.get('/', function (req, res) { 
   // -- 
})

Express.js 请求对象属性

下表列出了一些与请求对象相关的属性。

索引属性描述
1req.app保留了对使用该中间件的 Express 应用实例的引用。
2req.baseUrl指定了路由实例所挂载的 URL 路径。
3req.body包含了提交的请求体中的键值对数据。默认情况下为 undefined,当使用像 body-parser 这样的 body-parsing 中间件时会被填充。
4req.cookies当使用 cookie-parser 中间件时,这个属性是一个包含请求中发送的 Cookie 的对象。
5req.fresh表示请求是否“新鲜”。与 req.stale 相反。
6req.hostname包含了 "host" HTTP 头部中的主机名。
7req.ip指定了请求的远程 IP 地址。
8req.ips当信任代理设置为 true 时,这个属性包含了在 ?x-forwarded-for? 请求头中指定的 IP 地址的数组。
9req.originalUrl这个属性与 req.url 类似,但它保留了原始的请求 URL,允许您自由地为内部路由目的重新编写 req.url。
10req.params包含了与命名路由“参数”映射的属性。例如,如果有路由 /user/:name,则 "name" 属性可以通过 req.params.name 访问。这个对象默认为空对象。
11req.path包含了请求 URL 的路径部分。
12req.protocol请求协议字符串,在使用 TLS 时为 "http" 或 "https"。
13req.query包含了查询字符串中每个参数的属性对象。
14req.route当前匹配的路由,一个字符串。
15req.secure如果建立了 TLS 连接,则为 true 的布尔值。
16req.signedCookies当使用 cookie-parser 中间件时,这个属性包含了请求中发送的已签名的 Cookie,准备好被使用。
17req.stale表示请求是否“陈旧”。与 req.fresh 相反。
18req.subdomains表示请求的域名中的子域的数组。
19req.xhr一个布尔值,如果请求的 "x-requested-with" 头部字段是 "xmlhttprequest",则为 true,表示该请求是由客户端库(例如 jQuery)发起的。

请求对象方法

以下是一些通常使用的请求对象方法:

req.accepts(types)

该方法用于检查指定的内容类型是否可以被接受,基于请求的 Accept HTTP 头部字段。

示例:

req.accepts('html'); 
//=> "html" 
req.accepts('text/html'); 
// => "text/html" 

req.get(field)

该方法返回指定的 HTTP 请求头部字段。

示例:

req.get('Content-Type'); 
// => "text/plain" 
req.get('content-type'); 
// => "text/plain" 
req.get('Something'); 
// => undefined 

req.is(type)

该方法在传入的请求的 "Content-Type" HTTP 头部字段与指定的 MIME 类型相匹配时返回 true。

示例:

// 使用 Content-Type: text/html; charset=utf-8 
req.is('html'); 
req.is('text/html'); 
req.is('text/*'); 
// => true 

req.param(name [, defaultValue])

该方法在参数 name 存在时获取其值。

示例:

// ?name=sasha 
req.param('name') 
// => "sasha" 
// POST name=sasha 
req.param('name') 
// => "sasha" 
// /user/sasha 对于 /user/:name  
req.param('name') 
// => "sasha" 

标签: Nodejs, Nodejs安装教程, Nodejs教程, node, nodejs入门, nodejs入门教程, nodejs进阶, nodejs学习教程, nodejs开发, nodejs指南, nodejs学习指南, nodejs环境配置, nodejs框架