Request 对象(简称 req)
req对象代表 HTTP 请求,并且具有请求查询字符串、参数、主体、HTTP 标头等等相关的属性。在本文档中,按照惯例,该对象始终被称为req(而 HTTP 响应为res),但其实际名称由你正在使用的回调函数的参数决定。
Request 属性
method:包含请求类型url:包含浏览器 URL。path:包含请求 URL 的路径部分。query:包含请求参数。params:包含动态路由参数。命名路由 “参数”headers:包含请求头
代码示例
app.get('/:id', (req, res) => {
const { method, url, path, query, params, headers } = req;
console.log('method', method); // method GET
console.log('url', url); // url /user/1?name=zhang
console.log('path', path); // path /user/1
console.log('query', query); // query { name: 'zhang' }
console.log('params', params); // params { id: '1' }
console.log('header', headers); // header {host: '127.0.0.1:3000', connection: 'keep-alive', ......}
res.send(`id:${params.id}`);
});
Request 方法
-
get快速获取请求头里的内容 如:req.get('user-agent') -
header与 get 一致,快速获取请求头里的内容 -
accepts根据请求的AcceptHTTP 头字段,检查指定的内容类型是否可接受。该方法返回最佳匹配项; -
on用于监听 req 对象上的事件,处理客户端请求数据。 方法体第一个参数分别为:'data'用于逐步收集数据;'end'数据接收完成后触发;'error'事件捕获并处理请求过程中的错误。
代码示例
app.get('/user/:id', (req, res) => {
const { params } = req;
// 方法
console.log('get', req.get('user-agent')) // get Mozilla/..........
console.log('header', req.header('user-agent')) // header Mozilla/..........
res.send(`id:${params.id}`);
});