Jaka jest rzeczywista różnica między res.send
i res.json
, ponieważ wydaje się, że oba te same operacje odpowiadają na klienta.Różnica między res.send i res.json w Express.js
154
A
Odpowiedz
168
Metody są identyczne, gdy obiekt lub tablica jest przekazywana, ale res.json()
przekształci także obiekty nie będące obiektami, takie jak null
i undefined
, które nie są poprawnymi JSON.
Metoda wykorzystuje również ustawienia aplikacji json replacer
i json spaces
, dzięki czemu można sformatować JSON z większą liczbą opcji. Opcje te są ustawione tak:
app.set('json spaces', 2);
app.set('json replacer', replacer);
i przeszedł do JSON.stringify()
tak:
JSON.stringify(value, replacer, spacing);
// value: object to format
// replacer: rules for transforming properties encountered during stringifying
// spacing: the number of spaces for indentation
Jest to kod w metodzie res.json()
że metoda send nie ma:
var app = this.app;
var replacer = app.get('json replacer');
var spaces = app.get('json spaces');
var body = JSON.stringify(obj, replacer, spaces);
Metoda kończy się jako res.send()
na końcu:
this.charset = this.charset || 'utf-8';
this.get('Content-Type') || this.set('Content-Type', 'application/json');
return this.send(body);
50
res.json
ostatecznie nazywa res.send
, ale wcześniej go:
- szanuje ustawienia aplikacji
json spaces
ijson replacer
- zapewnia odpowiedź będzie miała utf8 charset i application/json Content-Type
6
Poszukuję w nagłówkach wysłanych ...
res.send wykorzystuje Content-Type: text/html
res.json wykorzystuje Content-Type: application/json
Powiązane problemy
- 1. Jaka jest różnica między res.end() i res.send()?
- 2. nie można zrobić wiele res.send w Express.js
- 3. Różnica między app.use a app.get w pliku express.js
- 4. Jaka jest różnica między "app.render" i "res.render" w pliku express.js?
- 5. Jaka jest różnica między trasą express.js a sterownikiem?
- 6. Node.js i Express.js Różnicowanie czcionek
- 7. Dlaczego nie mogę wywołać inline wywołania res.json?
- 8. Różnica między $ @ i $! w perl
- 9. Różnica między "i" w Lua
- 10. MySQL: Różnica między ",", "i"
- 11. Composer.phar różnica między | i ||
- 12. Różnica między | = i^= css
- 13. Różnica między "% ~ dp0" i ". \"?
- 14. Różnica między ". +" I ". +?"
- 15. Różnica między unwrapObservable i()
- 16. Różnica między "**/* /" i "** /"?
- 17. Różnica między (++ i) oraz (i ++)
- 18. Express - res.send() działa raz
- 19. Różnica kręgosłupa Różnica między CompositeView i CollectionView?
- 20. Różnica między org.apache.spark.ml.classification i org.apache.spark.mllib.classification
- 21. Różnica między fgets i fscanf?
- 22. Różnica między PyMODINIT_FUNC i PyModule_Create
- 23. Różnica między ParameterInfo.DefaultValue i ParameterInfo.RawDefaultValue
- 24. Różnica między DatagramSocket i DatagramChannel
- 25. różnica między Html.BeginForm() i ajax.beginform()
- 26. Różnica między IE8 i EmulateIE8
- 27. różnica między com.sun.jna i net.java.dev.jna?
- 28. Różnica między $ .getScript() i $ .get()
- 29. różnica między -lgcc_s i gcc
- 30. Różnica między sw600dp i w600dp?
Poświęć chwilę, aby zauważyć, jak ludzie zamieszczanie odpowiedzi po prostu poszedł do GitHub i odczytać kodu źródłowego. Jest to dobry nawyk do nauki i ustalenia. Prawda leży w Źródle. –
@PeterLyons Użyj źródła, Luke! – wprl
@PeterLyons Zgadzam się, że to dobry nawyk, ale czy miałeś na myśli, że baran powinien spojrzeć na źródło zamiast zadawać pytanie? Czy nie jest to sprzeczne z celem tej witryny? Obecność tego pytania, z odpowiedziami odnoszącymi się do dobrego źródła (Źródło!) Jest przydatna. – LinusR