Jadi, seseorang dapat mencoba mengambil objek JSON berikut:
$ curl -i -X GET http://echo.jsontest.com/key/value/anotherKey/anotherValue
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Content-Type: application/json; charset=ISO-8859-1
Date: Wed, 30 Oct 2013 22:19:10 GMT
Server: Google Frontend
Cache-Control: private
Alternate-Protocol: 80:quic,80:quic
Transfer-Encoding: chunked
{
"anotherKey": "anotherValue",
"key": "value"
}
$
Apakah ada cara untuk menghasilkan tubuh yang persis sama dalam respons dari server menggunakan node atau express? Jelas, seseorang dapat mengatur header dan mengindikasikan bahwa tipe konten dari respon akan menjadi "application / json", tetapi kemudian ada berbagai cara untuk menulis / mengirim objek. Salah satu yang saya lihat umum digunakan adalah dengan menggunakan perintah dari form:
response.write(JSON.stringify(anObject));
Namun, ini memiliki dua poin di mana orang dapat berdebat seolah-olah itu adalah "masalah":
- Kami mengirim string.
- Selain itu, pada akhirnya tidak ada karakter baris baru.
Gagasan lain adalah menggunakan perintah:
response.send(anObject);
Ini tampaknya mengirimkan objek JSON berdasarkan pada output dari curl mirip dengan contoh pertama di atas. Namun, tidak ada karakter garis baru di ujung tubuh ketika keriting lagi digunakan pada terminal. Jadi, bagaimana seseorang bisa menuliskan sesuatu seperti ini dengan karakter baris baru pada akhirnya menggunakan node atau node / express?
sumber
res.send
secara otomatis akan mengaturcontent-type
ke JSON, jika barang yang dikirim adalah objek atau array.res.end()
di Andahttp
(non-express) contohres.send()
tidak bekerja. Harap perbaiki, jika itu kesalahan.res.end()
berfungsi dengan benar. Terima kasih btw.Sejak Express.js 3x objek respons memiliki metode json () yang mengatur semua header dengan benar untuk Anda dan mengembalikan respons dalam format JSON.
Contoh:
sumber
Jika Anda mencoba mengirim file json, Anda dapat menggunakan stream
sumber
The
res.json()
fungsi harus cukup untuk kebanyakan kasus.The
res.json()
bertobat parameter fungsi yang Anda lolos ke JSON menggunakanJSON.stringify()
dan menetapkanContent-Type
sundulan untukapplication/json; charset=utf-8
jadi HTTP klien tahu untuk secara otomatis mengurai respon.sumber
jika Anda menggunakan Express, Anda dapat menggunakan ini:
atau hanya ini
sumber
Anda cukup memproduksinya menggunakan pipa dan satu dari banyak prosesor. Aplikasi Anda harus selalu merespons dengan muatan sekecil mungkin.
https://github.com/ddopson/underscore-cli
sumber
Anda dapat membuat helper untuk itu: Buat fungsi helper sehingga Anda dapat menggunakannya di mana saja di aplikasi Anda
Inilah rute topik saya di mana saya mencoba untuk mendapatkan semua topik
Respon yang kami dapatkan
sumber
Anda dapat menggunakan middleware untuk mengatur Tipe Konten default, dan mengatur Tipe Konten berbeda untuk API tertentu. Berikut ini sebuah contoh:
sumber
Untuk setengah dari tajuk pertanyaan, saya akan berteriak ke
res.type
sini:setara dengan
Sumber: dokumen tertulis :
sumber
Versi Express yang lebih lama menggunakan
app.use(express.json())
ataubodyParser.json()
membaca lebih lanjut tentang middleware bodyParserPada versi express terbaru, kita cukup menggunakan
res.json()
sumber
req.body
objek yang dikirim sebagai badan permintaan.