Câu trả lời:
req
là một đối tượng chứa thông tin về yêu cầu HTTP đã đưa ra sự kiện. Để đáp lại req
, bạn sử dụng res
để gửi lại phản hồi HTTP mong muốn.
Những thông số có thể được đặt tên bất cứ điều gì. Bạn có thể thay đổi mã này thành mã này nếu nó rõ ràng hơn:
app.get('/user/:id', function(request, response){
response.send('user ' + request.params.id);
});
Biên tập:
Nói rằng bạn có phương pháp này:
app.get('/people.json', function(request, response) { });
Yêu cầu sẽ là một đối tượng có các thuộc tính như thế này (chỉ nêu một vài tên):
request.url
, sẽ là "/people.json"
khi hành động cụ thể này được kích hoạtrequest.method
, sẽ có "GET"
trong trường hợp này, do đó app.get()
cuộc gọi.request.headers
, chứa các mục như request.headers.accept
, mà bạn có thể sử dụng để xác định loại trình duyệt nào đã đưa ra yêu cầu, loại phản hồi nào có thể xử lý, có thể hiểu được nén HTTP hay không, v.v.request.query
(ví dụ /people.json?foo=bar
sẽ dẫn đến việc request.query.foo
chứa chuỗi "bar"
).Để đáp ứng yêu cầu đó, bạn sử dụng đối tượng phản hồi để xây dựng phản hồi của mình. Để mở rộng trên people.json
ví dụ:
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 data is fetched 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);
});
req
và res
cấu trúc, nó được mô tả trong tài liệu express req
:: expressjs.com/en/api.html#req , res
: expressjs.com/en/api.html#res
Tôi nhận thấy một lỗi trong câu trả lời Dave Ward (có lẽ một sự thay đổi gần đây?): Các paramaters chuỗi truy vấn trong request.query
, không request.params
. (Xem https://stackoverflow.com/a/6913287/166530 )
request.params
theo mặc định được điền với giá trị của bất kỳ "kết hợp thành phần" nào trong các tuyến, nghĩa là
app.get('/user/:id', function(request, response){
response.send('user ' + request.params.id);
});
và, nếu bạn đã cấu hình express để sử dụng bodyparser của nó ( app.use(express.bodyParser());
) cũng với formdata POST'ed. (Xem Cách truy xuất tham số truy vấn POST? )
req
=="request"
//res
=="response"