Was ist der tatsächliche Unterschied zwischen res.send
und res.json
wie beide scheinen die gleiche Operation der Antwort auf den Client auszuführen.
200
Was ist der tatsächliche Unterschied zwischen res.send
und res.json
wie beide scheinen die gleiche Operation der Antwort auf den Client auszuführen.
Antworten:
Die Methoden sind identisch, wenn ein Objekt oder Array übergeben wird,
res.json()
konvertieren jedoch auch Nichtobjekte wienull
undundefined
, die kein gültiges JSON sind.Die Methode verwendet auch die Einstellungen
json replacer
und undjson spaces
, sodass Sie JSON mit mehr Optionen formatieren können. Diese Optionen sind wie folgt eingestellt:Und
JSON.stringify()
so weitergereicht:Dies ist der Code in der
res.json()
Methode, den die Sendemethode nicht hat:Die Methode endet
res.send()
am Ende als:quelle
https://github.com/visionmedia/express/blob/ee228f7aea6448cf85cc052697f8d831dce785d5/lib/response.js#L174
res.json
ruft schließlich anres.send
, aber vorher ist es:json spaces
undjson replacer
App-Einstellungenquelle
In den gesendeten Headern
suchen ... res.send verwendet den Inhaltstyp: text / html
res.json verwendet den Inhaltstyp: application / json
quelle
res.json
erzwingt das Argument zu JSON.res.send
nimmt ein Nicht-JSON-Objekt oder -Array und sendet einen anderen Typ. Beispielsweise:Dies gibt eine JSON-Nummer zurück.
Dies gibt einen Statuscode zurück und gibt eine Warnung zur Verwendung von sendStatus aus.
Wenn Ihr Argument kein JSON-Objekt oder -Array ist (null, undefiniert, boolesch, Zeichenfolge) und Sie sicherstellen möchten, dass es als JSON gesendet wird, verwenden Sie
res.json
.quelle