Bandingkan secara ringkas setHeader dan writeHead dalam Node dan bincangkan tentang perbezaannya.

青灯夜游
Lepaskan: 2022-03-23 20:04:10
ke hadapan
2553 orang telah melayarinya

Apakah perbezaan antara setHeader dan writeHead dalam Nodejs? Artikel berikut akan membandingkan setHeader dan writeHead dan bercakap tentang perbezaan mereka. Saya harap ia akan membantu semua orang!

Bandingkan secara ringkas setHeader dan writeHead dalam Node dan bincangkan tentang perbezaannya.

Semasa saya belajar Node hari ini, saya menemui Node/httpsetHeader dan writeHead dalam Sangat serupa, anda boleh menetapkan pengepala respons, mari bincangkannya secara terperinci!

setHeader

Parameter

response.setHeader(name, value)复制代码
Salin selepas log masuk
  • nama atribut
  • nilai atribut nilai
  • Mengembalikan http.ServerResponse Mengembalikan objek tindak balas

Fungsi

Menetapkan atribut tunggal untuk pengepala respons.

Nota

  • Anda hanya boleh menetapkan atribut satu demi satu
  • Menetapkan atribut berulang kali akan menggantikan atribut sebelumnya tetapan
  • Menetapkan nama medan atribut atau nilai yang mengandungi aksara tidak sah akan mengakibatkan melontar TypeError

Contoh

reponse.setHeader('Content-Type', 'text/html')
Salin selepas log masuk
reponse.setHeader('Set-Cookie', ['type=ninja', 'language=javascript'])
Salin selepas log masuk

Tetapkan atribut berulang kali

// 返回 content-type = text/html1
reponse.setHeader('Content-Type', 'text/html')
reponse.setHeader('Content-Type', 'text/html1')
Salin selepas log masuk

Bandingkan secara ringkas setHeader dan writeHead dalam Node dan bincangkan tentang perbezaannya.

writeHead

Parameter

response.writeHead(statusCode, [statusMessage], [headers])
Salin selepas log masuk
  • statusCode kod status http

  • statusMesej status mesej (pilihan)

  • tajuk |. objek atribut atau tatasusunan (pilihan)

  • mengembalikanhttp.ServerResponse mengembalikan objek respons

Bandingkan secara ringkas setHeader dan writeHead dalam Node dan bincangkan tentang perbezaannya.

mempunyai kesan yang sama seperti

dan setHeader mempunyai kesan yang sama

Perhatikan bahawa

  • boleh ditetapkan Untuk berbilang atribut, setHeader hanya boleh menetapkan satu

  • dan hanya boleh dipanggil sekali

  • mesti dipanggil sebelum response.end()

  • Menetapkan nama medan atribut atau nilai yang mengandungi aksara tidak sah akan mengakibatkan melontar TypeError

Contoh

kerana writeHead Apa yang dikembalikan ialah objek ServerResponse dan kita boleh membuat panggilan berantai

const body = 'hello world';
response
  .writeHead(200, {
    'Content-Length': Buffer.byteLength(body),
    'Content-Type': 'text/plain'
  })
  .end(body);
Salin selepas log masuk

Panjang Kandungan di sini adalah dalam bait, bukan aksara. Buffer.byteLength() digunakan untuk menentukan panjang teks.

Nodejs tidak akan menyemak sama ada Panjang Kandungan adalah konsisten dengan panjang badan yang dihantar

Gunakan setHeader dan writeHead pada masa yang sama

// 返回 content-type = text/plain
const server = http.createServer((req, res) => {
  res.setHeader('Content-Type', 'text/html');
  res.setHeader('X-Foo', 'bar');
  res.writeHead(200, { 'Content-Type': 'text/plain' });
  res.end('ok');
});
Salin selepas log masuk

writeHead mempunyai keutamaan yang lebih tinggi daripada setHeader, dan writeHead hanya boleh dipanggil sekali, jadi apabila memanggil, pertimbangkan dahulu pengepala mana yang tidak kerap berubah, dan kemudian panggil writeHead

jika Tetapan setHeader telah dipanggil pengepala, kemudian ia akan diserahkan kepada writeHead cantum

Jika kaedah ini dipanggil dan response.setHeader()) belum dipanggil lagi, nilai pengepala yang disediakan akan ditulis terus ke saluran rangkaian dan tidak akan dicache secara dalaman. response.getHeader()) dalam pengepala tidak menghasilkan hasil yang diharapkan. Jika anda perlu mengisi pengepala secara progresif dengan potensi perolehan dan pengubahsuaian pada masa hadapan, gunakan response.setHeader() sebaliknya.

Ringkasan

  • setHeader hanya boleh set header satu per satu, writeHead boleh set banyak sekaligus

  • setHeader boleh dipanggil berulang kali, writeHead hanya boleh dipanggil sekali

  • setHeader dan writeHead muncul pada masa yang sama, setHead akan digabungkan menjadi writeHead dan writeHead mempunyai keutamaan yang tinggi

  • writeHead boleh menetapkan kod status dan maklumat status, tetapi setHeader tidak boleh ditetapkan dan hanya boleh menetapkan pengepala

Untuk lebih banyak pengetahuan berkaitan nod, sila lawati: tutorial nodejs!

Atas ialah kandungan terperinci Bandingkan secara ringkas setHeader dan writeHead dalam Node dan bincangkan tentang perbezaannya.. 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