Qual è la differenza effettiva tra res.send
e res.json
poiché entrambi sembrano eseguire la stessa operazione di risposta al client.Differenza tra res.send e res.json in Express.js
154
A
risposta
168
I metodi sono identici quando viene passato un oggetto o array, ma res.json()
anche convertire i non-oggetti, come null
e undefined
, che non sono JSON valido.
Il metodo utilizza anche le impostazioni dell'applicazione json replacer
e json spaces
, quindi è possibile formattare JSON con più opzioni. Queste opzioni sono impostate in questo modo:
app.set('json spaces', 2);
app.set('json replacer', replacer);
e passato a un JSON.stringify()
in questo modo:
JSON.stringify(value, replacer, spacing);
// value: object to format
// replacer: rules for transforming properties encountered during stringifying
// spacing: the number of spaces for indentation
Questo è il codice nel metodo res.json()
che il metodo di invio non ha:
var app = this.app;
var replacer = app.get('json replacer');
var spaces = app.get('json spaces');
var body = JSON.stringify(obj, replacer, spaces);
procedimento finisce come res.send()
alla fine:
this.charset = this.charset || 'utf-8';
this.get('Content-Type') || this.set('Content-Type', 'application/json');
return this.send(body);
50
res.json
casualmente chiede res.send
, ma prima che:
- rispetta le impostazioni
json spaces
ejson replacer
app - garantisce la risposta avrà utf8 charset e application/json tipo di contenuto
6
Ricerca nelle intestazioni inviate ...
res.send utilizza Content-Type: text/html
res.json utilizza content-type: application/json
Problemi correlati
- 1. Differenza tra app.use e app.get in express.js
- 2. Qual è la differenza tra res.end() e res.send()?
- 3. non può fare più res.send in express.js
- 4. In Express.js perché il codice dopo res.json() viene ancora eseguito?
- 5. Qual è la differenza tra "app.render" e "res.render" in express.js?
- 6. Perché non posso chiamare in linea res.json?
- 7. Differenza tra `% in%` e `` ==
- 8. Express.js POST req.body vuoto
- 9. è possibile percorsi di nome in Express.js
- 10. Differenza tra "" e "" in Python
- 11. Differenza tra $ @ e $! in perl
- 12. Differenza tra. e: in Lua
- 13. Differenza tra. e #
- 14. Differenza tra "o" e "||"
- 15. MySQL: Differenza tra ",", "e"
- 16. Differenza tra "e" e && in Ruby?
- 17. Differenza tra oggetto e *?
- 18. Differenza tra ". +" E ". +?"
- 19. Differenza tra | = e^= css
- 20. CMake: differenza tra $ {} e "$ {}"
- 21. La differenza tra $ * e $ @
- 22. Express - res.send() funziona una volta
- 23. Differenza tra $ # e $ {# @}
- 24. Differenza tra unwrapObservable e()
- 25. Differenza tra "**/* /" e "** /"?
- 26. Differenza tra jquery e $
- 27. VBA: Differenza tra & e +
- 28. Differenza tra numpy.logical_and e &
- 29. Download dei download da lavorare tra angularjs e express.js
- 30. Differenza tra nodo js ed express js
Prendetevi un momento per notare come le persone che inviano risposte appena andato a GitHub e leggere il codice sorgente. Questa è una buona abitudine da imparare e stabilire. La verità sta nella fonte. –
@PeterLyons Usa The Source, Luke! – wprl
@PeterLyons Sono d'accordo che questa è una buona abitudine, ma intendevi che ram dovrebbe aver guardato la fonte invece di porre la domanda? Questo non sconfigge lo scopo di questo sito? La presenza di questa domanda, con le risposte che si riferiscono a una buona fonte (The Source!) È utile. – LinusR