Request对象
如我们所见,路由处理程序中第一个参数req即是指的request对象。request对象包含了请求的数据和元数据,包括URL、标头、查询字符串等。它可以帮助我们在代码中正确处理请求。
下面表中列举出了request对象的属性和方法:
属性/方法 | 说明 |
---|---|
originalUrl | 请求对象的原始Url字符串 |
protocol | 协议的字符串,例如http或者https |
ip | 请求的 IP地址 |
path | 请求的URL的路径部分 |
host | 请求的主机名 |
method | HTTP方法:GET、POST等 |
query | 请求的URL查询字符串部分 |
fresh | 一个布尔值,当最后修改与当前匹配时为true |
stale | 一个布尔值,当最后修改与当前匹配时为false |
secure | 一个布尔值,当建立TLS连接时为true |
acceptsCharset(charset) | 一个方法,如果由charset指定的字符集受支持,则返回true |
get(header) | 返回header的值的方法 |
headers | 请求标头的对象形式 |
下面,我们写几行代码看看上表中的各个属性和方法:
var express = require('express');
var app = express();
app.listen( 2337 );
app.get('/user/:userid', function(req, res) {
console.log("URL:\t " + req.originalUrl);
console.log("Protocol: " + req.protocol);
console.log("IP:\t " + req.ip);
console.log("Path:\t " + req.path);
console.log("Host:\t " + req.host);
console.log("Method:\t " + req.method);
console.log("Query:\t " + JSON.stringify( req.query ) );
console.log("Fresh:\t " + req.fresh);
console.log("Stale:\t " + req.stale);
console.log("Secure:\t " + req.secure);
console.log("UTF8:\t " + req.acceptsCharset("utf8") );
console.log("Connection: " + req.get('connection'));
console.log("Headers: " + JSON.stringify(req.headers, null, 2));
res.send("User Request");
});