Какова реальная разница между ними res.send
и тем, res.json
что оба выполняют одну и ту же операцию ответа клиенту.
javascript
node.js
http
express
пеленг
источник
источник
Ответы:
Методы идентичны при передаче объекта или массива, но
res.json()
также преобразуют не-объекты, такие какnull
иundefined
, которые не являются допустимыми JSON.Метод также использует параметры приложения
json replacer
иjson spaces
, поэтому вы можете отформатировать JSON с дополнительными параметрами. Эти параметры установлены так:И перешел к
JSON.stringify()
так:Это код в
res.json()
методе, которого метод send не имеет:Метод заканчивается как a
res.send()
в конце:источник
https://github.com/visionmedia/express/blob/ee228f7aea6448cf85cc052697f8d831dce785d5/lib/response.js#L174
res.json
в конце концов звонитres.send
, но до этого это:json spaces
иjson replacer
настройки приложенияисточник
Просматривая отправленные заголовки ...
res.send использует тип контента: text / html
res.json использует тип контента: приложение / json
источник
res.json
заставляет аргумент JSON.res.send
возьмет не-JSON объект или массив и отправит другой тип. Например:Это вернет номер JSON.
Это вернет код состояния и выдаст предупреждение для использования sendStatus.
Если ваш аргумент не является объектом или массивом JSON (null, undefined, boolean, string), и вы хотите, чтобы он был отправлен как JSON, используйте
res.json
.источник