2015-04-10 14 views

risposta

54

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.

+29

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

+16

@ 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

Problemi correlati