Dalam fungsi Express berikut:
app.get('/user/:id', function(req, res){
res.send('user' + req.params.id);
});
Apa req
dan res
? Apa yang mereka perjuangkan, apa artinya, dan apa yang mereka lakukan?
Terima kasih!
Dalam fungsi Express berikut:
app.get('/user/:id', function(req, res){
res.send('user' + req.params.id);
});
Apa req
dan res
? Apa yang mereka perjuangkan, apa artinya, dan apa yang mereka lakukan?
Terima kasih!
Jawaban:
req
adalah objek yang berisi informasi tentang permintaan HTTP yang mengangkat peristiwa tersebut. Sebagai tanggapan req
, Anda gunakan res
untuk mengirim kembali respons HTTP yang diinginkan.
Parameter itu bisa dinamai apa saja. Anda dapat mengubah kode itu menjadi ini jika lebih jelas:
app.get('/user/:id', function(request, response){
response.send('user ' + request.params.id);
});
Edit:
Katakanlah Anda memiliki metode ini:
app.get('/people.json', function(request, response) { });
Permintaan akan menjadi objek dengan properti seperti ini (hanya untuk beberapa nama):
request.url
, yang akan terjadi "/people.json"
ketika tindakan khusus ini dipicurequest.method
, Yang akan "GET"
dalam hal ini, maka app.get()
panggilan itu.request.headers
, berisi item seperti request.headers.accept
, yang dapat Anda gunakan untuk menentukan jenis browser apa yang membuat permintaan, jenis respons apa yang dapat ditangani, apakah bisa memahami kompresi HTTP atau tidak, dll.request.query
(misalnya /people.json?foo=bar
akan menghasilkan request.query.foo
string "bar"
).Untuk menanggapi permintaan itu, Anda menggunakan objek respons untuk membangun respons Anda. Untuk memperluas people.json
contoh:
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
dan res
struktur, yang dijelaskan dalam dokumen ekspres: req
: expressjs.com/en/api.html#req , res
: expressjs.com/en/api.html#res
Saya melihat satu kesalahan dalam jawaban Dave Ward (mungkin perubahan baru-baru ini?): Paramaters string kueri ada di request.query
, bukan request.params
. (Lihat https://stackoverflow.com/a/6913287/166530 )
request.params
secara default diisi dengan nilai "kecocokan komponen" dalam rute, yaitu
app.get('/user/:id', function(request, response){
response.send('user ' + request.params.id);
});
dan, jika Anda telah mengonfigurasi express untuk menggunakan bodyparser ( app.use(express.bodyParser());
) juga dengan formdata POST'ed. (Lihat Bagaimana cara mengambil parameter permintaan POST? )
req
=="request"
//res
=="response"