Quelle est la différence réelle entre res.send
et res.json
comme les deux semble effectuer la même opération de réponse au client.
201
Quelle est la différence réelle entre res.send
et res.json
comme les deux semble effectuer la même opération de réponse au client.
Réponses:
Les méthodes sont identiques lorsqu'un objet ou un tableau est transmis, mais
res.json()
convertissent également les non-objets, tels quenull
etundefined
, qui ne sont pas des JSON valides.La méthode utilise également les paramètres d'application
json replacer
etjson spaces
, de sorte que vous pouvez formater JSON avec plus d'options. Ces options sont définies comme suit:Et passé à un
JSON.stringify()
pareil:C'est le code de la
res.json()
méthode que la méthode d'envoi n'a pas:La méthode finit comme un
res.send()
à la fin:la source
https://github.com/visionmedia/express/blob/ee228f7aea6448cf85cc052697f8d831dce785d5/lib/response.js#L174
res.json
appelle finalementres.send
, mais avant cela:json spaces
etjson replacer
la source
En regardant dans les en-têtes envoyés ...
res.send utilise le type de contenu: text / html
res.json utilise le type de contenu: application / json
la source
res.json
force l'argument à JSON.res.send
prendra un objet ou un tableau non json et enverra un autre type. Par exemple:Cela renverra un numéro JSON.
Cela renverra un code d'état et émettra un avertissement pour utiliser sendStatus.
Si votre argument n'est pas un objet ou un tableau JSON (null, non défini, booléen, chaîne) et que vous voulez vous assurer qu'il est envoyé en JSON, utilisez
res.json
.la source