Analisis ringkas res.send() dan res.end() dalam rangka kerja Express nod

青灯夜游
Lepaskan: 2022-01-27 18:17:28
ke hadapan
2116 orang telah melayarinya

Artikel ini akan membincangkan tentang nod rangka kerja Express dan mempelajari tentang res.send() dan res.end() dalam Express.

Analisis ringkas res.send() dan res.end() dalam rangka kerja Express nod

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);
});
Salin selepas log masuk

Jadi apakah perbezaan antara kedua-dua kaedah ini? Apakah senario aplikasi masing-masing? Inilah yang perlu saya jelaskan hari ini.

Express’s res.end()

Definisi

Ia boleh tamat dengan cepat tanpa sebarang respons data.

Kaedah ini sebenarnya berasal dari teras Nod, khususnya kaedah http.ServerResponse.Use response.end():

Analisis ringkas res.send() dan res.end() dalam rangka kerja Express nod

Sintaksis

res.end([data[, encoding]][, callback])
Salin selepas log masuk

Analisis parameter:

  • data
  • pengekodan
  • panggil balik

Mendalam

Jika objek dihantar ke kaedah res.end(), ralat akan berlaku :

Analisis ringkas res.send() dan res.end() dalam rangka kerja Express nod

Express res.send()

takrifkan

kepada permintaan Pelanggan menghantar mesej respons HTTP.

Sintaks

res.send([body[,statusCode]])
Salin selepas log masuk

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;
};
Salin selepas log masuk

Perbandingan

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.

Ringkasan

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!

Label berkaitan:
sumber:juejin.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan