Sono un principiante in Express.js
e sono confuso da queste due parole chiave: res.end()
e res.send()
.Qual è la differenza tra res.end() e res.send()?
Sono uguali o diversi?
Sono un principiante in Express.js
e sono confuso da queste due parole chiave: res.end()
e res.send()
.Qual è la differenza tra res.end() e res.send()?
Sono uguali o diversi?
res.send()
invierà la risposta HTTP. La sua sintassi è,
res.send([body])
Il parametro body può essere un oggetto buffer, una stringa, un oggetto o una matrice. Ad esempio:
res.send(new Buffer('whoop'));
res.send({ some: 'json' });
res.send('<p>some html</p>');
res.status(404).send('Sorry, we cannot find that!');
res.status(500).send({ error: 'something blew up' });
Vedere this per ulteriori informazioni.
res.end()
termina la procedura di risposta. Questo metodo deriva in realtà dal nucleo del nodo, in particolare dal metodo response.end()
di http.ServerResponse
. È usato per terminare rapidamente la risposta senza dati. Ad esempio:
Leggi this per ulteriori informazioni.
Ma res.end può effettivamente agire come res.send, in quanto è possibile passare un argomento stringa da aggiungere come corpo della risposta. Inoltre, res.send termina anche la risposta. Quindi, come sono funzionalmente diversi? – saltthehash
@ psytech140 Jmar77 ha avuto una buona risposta [qui] (http://stackoverflow.com/a/22774872/5177017): "Se si passa una stringa a res.send(), assume automaticamente un Content-Type di html res.end(), tuttavia, richiama semplicemente l'implementazione end() sottostante del nodo sul flusso di risposta, quindi non vengono fatte ipotesi per il tipo di contenuto. " – abagh0703