ในฟังก์ชั่น Express ต่อไปนี้:
app.get('/user/:id', function(req, res){
res.send('user' + req.params.id);
});
สิ่งที่เป็นreqและres? พวกเขาหมายถึงอะไรพวกเขาหมายถึงอะไรและพวกเขาทำอะไร
ขอบคุณ!
ในฟังก์ชั่น Express ต่อไปนี้:
app.get('/user/:id', function(req, res){
res.send('user' + req.params.id);
});
สิ่งที่เป็นreqและres? พวกเขาหมายถึงอะไรพวกเขาหมายถึงอะไรและพวกเขาทำอะไร
ขอบคุณ!
คำตอบ:
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ประกอบด้วยรายการเช่นrequest.headers.acceptซึ่งคุณสามารถใช้เพื่อกำหนดชนิดของเบราว์เซอร์ที่ทำการร้องขอประเภทของการตอบสนองที่สามารถจัดการไม่ว่าจะเข้าใจการบีบอัด HTTP หรือไม่request.query(เช่น/people.json?foo=barจะส่งผลให้request.query.fooมีสตริง"bar")ในการตอบสนองต่อคำขอนั้นคุณใช้ออบเจ็กต์การตอบสนองเพื่อสร้างการตอบกลับของคุณ ในการขยาย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 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และresโครงสร้างที่อธิบายไว้ในเอกสารด่วน: req: expressjs.com/en/api.html#req , res: expressjs.com/en/api.html#res
ผมสังเกตเห็นข้อผิดพลาดอย่างใดอย่างหนึ่งในคำตอบของเดฟวอร์ด (อาจจะมีการเปลี่ยนแปลงเมื่อเร็ว ๆ นี้?): สอบถาม PARAMATERS สตริงอยู่ในไม่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);
});
และหากคุณได้กำหนดค่าด่วนให้ใช้ bodyparser ( app.use(express.bodyParser());) เช่นเดียวกันกับ POST'ed formdata (ดูวิธีเรียกข้อมูลพารามิเตอร์ข้อความค้นหา POST )
req=="request"//res=="response"