Artikel ini akan membincangkan tentang nod rangka kerja Express dan mempelajari tentang res.send() dan res.end() dalam Express.
Dalam kod pelayan menggunakan Node.js
, jika anda menggunakan rangka kerja Express, selalunya terdapat dua respons kepada kaedah permintaan:
// 方法1 app.get("/end", (req, res, next) =>{ res.end(xxx); }); // 方法2 app.get("/send", (req, res, next) =>{ res.send(xxx); });
Jadi apakah perbezaan antara kedua-dua kaedah ini? Apakah senario aplikasi masing-masing? Inilah yang perlu saya jelaskan hari ini.
Definisi
Ia boleh tamat dengan cepat tanpa sebarang respons data.
Kaedah ini sebenarnya berasal dari teras Nod, khususnya kaedah http.ServerResponse.Use
response.end()
:
Sintaksis
res.end([data[, encoding]][, callback])
Analisis parameter:
Mendalam
Jika objek dihantar ke kaedah res.end()
, ralat akan berlaku :
takrifkan
kepada permintaan Pelanggan menghantar mesej respons HTTP.
Sintaks
res.send([body[,statusCode]])
Parameter badan boleh menjadi Penampan, Objek, Rentetan, Boolean atau Tatasusunan.
Sedalam-dalamnya
Melalui penyahpepijatan kod, kita boleh mendapati bahawa kaedah res.send()
Express akhirnya memanggil Kaedah http.ServerResponse.Use
response.end()
:
// node_modules/express/lib/response.js res.send = function send(body) { var chunk = body; var encoding; …… if (req.method === 'HEAD') { // skip body for HEAD this.end(); } else { // respond this.end(chunk, encoding); } return this; };
Mata yang sama
Kaedah res.end() dan res.send( ) Express :
Kedua-duanya akhirnya kembali kepada kaedah http.ServerResponse.Use
response.end()
.
Kedua-duanya akan menamatkan proses respons semasa.
Perbezaan
Perbezaan antara kaedah res.end() dan res.send() Express:
Yang pertama hanya boleh menghantar rentetan atau jenis Penampan, manakala yang terakhir boleh menghantar sebarang jenis data.
Dari sudut semantik, yang pertama lebih sesuai untuk senario tanpa sebarang data tindak balas, manakala yang kedua lebih sesuai untuk senario dengan data tindak balas.
Apabila menggunakan kaedah res.end() dan res.send() Express, biasanya disyorkan untuk menggunakan kaedah res.send()
, jadi tidak perlu mengambil berat tentang format data respons kerana Express memproses data secara dalaman.
~Artikel ini telah tamat, terima kasih kerana membaca!
Untuk lebih banyak pengetahuan berkaitan nod, sila lawati: tutorial nodejs! !
Atas ialah kandungan terperinci Analisis ringkas res.send() dan res.end() dalam rangka kerja Express nod. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!