Expressfunction中的“res”和“req”参数是什么?

在以下Expressfunction中:

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()调用。
  • request.headers一个HTTP头部数组,包含request.headers的项目,您可以使用这些项目来确定请求的浏览器types,可以处理的响应types,是否能够理解HTTP压缩等等
  • request.params (如/people.json?foo=bar会导致包含string"bar" request.params.foo中有任何查询string参数的数组。

为了响应这个请求,你使用响应对象来构build你的响应。 展开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); }); 

我注意到Dave Ward的答案中有一个错误(也许是最近的一个变化?):查询string参数在request.query ,而不是request.params 。 (请参阅https://stackoverflow.com/a/6913287/166530

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

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

而且,如果你已经configuration了express来使用它的bodyparser( app.use(express.bodyParser()); )也可以使用POST的formdata。 (请参阅如何检索POST查询参数? )

请求和响应。

要了解req,请试用console.log(req);

req正在请求服务器。 res正在将响应发回给用户。