Saya seorang pemula Express.js
dan saya bingung dengan dua kata kunci ini: res.end()
dan res.send()
.
Apakah mereka sama atau berbeda?
Saya seorang pemula Express.js
dan saya bingung dengan dua kata kunci ini: res.end()
dan res.send()
.
Apakah mereka sama atau berbeda?
Jawaban:
res.send()
akan mengirimkan tanggapan HTTP. Sintaksnya adalah,
res.send([body])
Parameter body dapat berupa objek Buffer, String, objek, atau Array. Sebagai contoh:
res.send(new Buffer('whoop'));
res.send({ some: 'json' });
res.send('<p>some html</p>');
res.status(404).send('Sorry, we cannot find that!');
res.status(500).send({ error: 'something blew up' });
Lihat ini untuk info lebih lanjut.
res.end()
akan mengakhiri proses tanggapan. Metode ini sebenarnya berasal dari inti Node, khususnya response.end()
metode http.ServerResponse
. Ini digunakan untuk mengakhiri respons dengan cepat tanpa data apa pun. Sebagai contoh:
res.end();
res.status(404).end();
Baca ini untuk info lebih lanjut.
express
tetapi dari pemikiran judul - seseorang mengirim sesuatu, satu mengakhiri sesuatu .... 'sangat benar.
res.send()
tanpa apa-apa. Apakah ini bertindak seperti itu res.end()
?
Saya ingin lebih menekankan pada beberapa perbedaan utama antara res.end()
& res.send()
sehubungan dengan tajuk tanggapan dan mengapa hal itu penting.
1. res.send () akan memeriksa struktur keluaran Anda dan mengatur informasi header yang sesuai.
app.get('/',(req,res)=>{
res.send('<b>hello</b>');
});
app.get('/',(req,res)=>{
res.send({msg:'hello'});
});
Dimana dengan res.end () Anda hanya dapat merespon dengan teks dan itu tidak akan mengatur " Jenis-Konten "
app.get('/',(req,res)=>{
res.end('<b>hello</b>');
});
2. res.send () akan menyetel atribut "ETag" di header respons
app.get('/',(req,res)=>{
res.send('<b>hello</b>');
});
¿Mengapa tag ini penting?
Header respons HTTP ETag adalah pengenal untuk versi sumber daya tertentu. Ini memungkinkan cache menjadi lebih efisien, dan menghemat bandwidth, karena server web tidak perlu mengirim respons penuh jika konten tidak berubah.
res.end()
TIDAK akan menyetel atribut tajuk ini
apa yang dilakukan res.send (), adalah mengimplementasikan res.write , res.setHeaders dan res.end .
itu memeriksa data apa yang Anda kirim dan mengatur header yang benar,
lalu mengalirkan data dengan res.write, dan pada akhirnya menggunakan res.end untuk menyetel akhir permintaan.
ada beberapa kasus yang ingin Anda lakukan secara manual misalnya jika Anda ingin melakukan streaming file atau kumpulan data yang besar, dalam kasus ini Anda ingin mengatur header sendiri dan menggunakan res.write untuk tetap streaming mengalir.
res.end
digunakan oleh simpul biasa dimana sepertires.send
yang digunakan oleh kerangka ekspres