Express Request 对象

159 阅读1分钟
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 根据请求的Accept HTTP 头字段,检查指定的内容类型是否可接受。该方法返回最佳匹配项;

  • 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}`);
});