在Express函数中“res”和“req”参数是什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (46)

在下列速递功能中:

app.get('/user/:id', function(req, res){
    res.send('user ' + req.params.id);
});

何谓reqres是吗?他们代表什么,他们是什么意思,他们是做什么的?

提问于
用户回答回答于

req是一个包含引发事件的HTTP请求的信息的对象。

作为对req,你用res若要返回所需的HTTP响应,请执行以下操作。

app.get('/user/:id', function(request, response){
  response.send('user ' + request.params.id);
});

编辑:

假设你有这样的方法:

app.get('/people.json', function(request, response) { });

请求将是一个具有以下属性的对象(仅举几个例子):

  • request.url,这将是"/people.json"当触发此特定操作时
  • request.method,这将是"GET"在这种情况下,因此app.get()打电话。
  • 中的HTTP报头数组request.headers,包含以下项目:request.headers.accept,可以使用它来确定哪种浏览器发出了请求,可以处理什么样的响应,以及它是否能够理解HTTP压缩等等。
  • 如果存在查询字符串参数的数组,则在request.params(如:/people.json?foo=bar会导致request.params.foo包含字符串"bar")

若要响应该请求,请使用Response对象构建响应。扩展到people.json例子:

app.get('/people.json', function(request, response) {
  // We want to set the content-type header so that the browser understands
  //  the content of the response.
  response.contentType('application/json');

  // Normally, the would probably come from a database, but we can cheat:
  var people = [
    { name: 'Dave', location: 'Atlanta' },
    { name: 'Santa Claus', location: 'North Pole' },
    { name: 'Man in the Moon', location: 'The Moon' }
  ];

  // Since the request is for a JSON representation of the people, we
  //  should JSON serialize them. The built-in JSON.stringify() function
  //  does that.
  var peopleJSON = JSON.stringify(people);

  // Now, we can use the response object's send method to push that string
  //  of people JSON back to the browser in response to this request:
  response.send(peopleJSON);
});
用户回答回答于

request.params默认情况下,在路由中填充任何“组件匹配”的值,即

app.get('/user/:id', function(request, response){
  response.send('user ' + request.params.id);
});

扫码关注云+社区