Ia adalah operasi yang sangat biasa untuk menggunakan fungsi res.send() dalam Node.js untuk menghantar respons kepada klien, tetapi kadangkala mungkin terdapat masalah bahawa parameter respons tidak boleh dihantar. Artikel ini akan melihat beberapa sebab yang boleh menyebabkan ini dan penyelesaian yang mungkin.
Parameter fungsi res.send() boleh berupa rentetan, objek JavaScript atau objek Penampan. Jika jenis parameter yang tidak disokong digunakan, parameter tindak balas mungkin tidak dihantar.
Penyelesaian:
Pastikan anda menggunakan jenis parameter yang betul. Jika anda ingin menghantar rentetan, gunakan res.send('rentetan saya' Jika anda ingin menghantar objek JavaScript, gunakan res.send({key1: 'value1', key2: 'value2'}).
Jika parameter respons yang akan dihantar mengandungi aksara khas seperti tanda petikan, kurungan dan garis miring, respons mungkin tidak dihantar.
Penyelesaian:
Gunakan fungsi JSON.stringify() untuk mensiri objek menjadi rentetan dan menghantarnya kepada klien.
Sebagai contoh, jika anda ingin menghantar objek berikut:
{
"key1": "value1",
"key2": "value2",
"key3": ""value3""
}
Anda boleh menggunakan kod berikut untuk mensirikannya menjadi rentetan:
res.send(JSON.stringify({
key1: 'value1' ,
key2: 'value2',
key3: '"value3"'
}))
Gunakan Selepas fungsi res.send() menghantar respons, ia tidak boleh menggunakan kaedah lain untuk menghantar respons. Jika fungsi res.send() digunakan beberapa kali semasa pemprosesan permintaan, respons seterusnya tidak akan dihantar kepada klien.
Penyelesaian:
Pastikan hanya satu fungsi res.send() dipanggil. Jika anda perlu menghantar berbilang respons, anda boleh menggunakan fungsi atau saluran paip res.write() untuk menghantar berbilang respons.
Jika pelanggan mengganggu permintaan atau masa permintaan tamat sebelum respons dihantar, respons mungkin tidak berjaya dihantar.
Penyelesaian:
Gunakan mekanisme tamat masa sebelah pelayan atau mekanisme pengendalian isyarat untuk mengesan sama ada permintaan telah tamat masa atau terganggu, dengan itu mengelakkan penghantaran respons yang tidak dapat sampai kepada pelanggan.
Ringkasan
Di atas adalah beberapa sebab dan penyelesaian yang mungkin menyebabkan kegagalan untuk menghantar parameter respons menggunakan fungsi res.send(). Apabila menggunakan fungsi ini, penjagaan perlu diambil untuk lulus jenis parameter yang betul, mengelakkan aksara khas, dan memastikan bahawa hanya satu respons dihantar. Jika anda mencari penyelesaian daripada ini, sila kongsi dengan kami di bahagian komen.
Atas ialah kandungan terperinci parameter nodejs res.send() tidak boleh dihantar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!