Итак, можно попытаться получить следующий объект JSON:
$ curl -i -X GET http://echo.jsontest.com/key/value/anotherKey/anotherValue
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Content-Type: application/json; charset=ISO-8859-1
Date: Wed, 30 Oct 2013 22:19:10 GMT
Server: Google Frontend
Cache-Control: private
Alternate-Protocol: 80:quic,80:quic
Transfer-Encoding: chunked
{
"anotherKey": "anotherValue",
"key": "value"
}
$
Есть ли способ получить точно такое же тело в ответе от сервера, используя узел или экспресс? Ясно, что можно установить заголовки и указать, что тип содержимого ответа будет «application / json», но тогда есть разные способы записи / отправки объекта. То, что я часто видел, используется командой вида:
response.write(JSON.stringify(anObject));
Однако в этом есть два момента, в которых можно утверждать, что это были «проблемы»:
- Мы отправляем строку.
- Более того, в конце нет символа новой строки.
Другая идея заключается в использовании команды:
response.send(anObject);
Похоже, что это отправка объекта JSON на основе вывода curl, как в первом примере выше. Тем не менее, нет символа новой строки в конце тела, когда curl снова используется на терминале. Итак, как можно на самом деле записать что-то вроде этого с символом новой строки, добавляемым в конце, используя узел или узел / экспресс?
источник
res.send
автоматически установитcontent-type
для JSON, если отправленный элемент является объектом или массивом.res.end()
в своемhttp
(res.send()
не работает. Пожалуйста, исправьте это, если это ошибка.res.end()
работает правильно. Спасибо, кстати.Начиная с Express.js 3x, объект ответа имеет метод json (), который корректно устанавливает все заголовки и возвращает ответ в формате JSON.
Пример:
источник
Если вы пытаетесь отправить файл JSON, вы можете использовать потоки
источник
res.json()
Функция должна быть достаточна для большинства случаев.В
res.json()
функции преобразует параметр вы передаете JSON с помощьюJSON.stringify()
и задаетContent-Type
заголовок кapplication/json; charset=utf-8
таким HTTP клиенты знают , автоматически разобрать ответ.источник
если вы используете Express, вы можете использовать это:
или только это
источник
Вы можете просто настроить его, используя pipe и один из многих процессоров. Ваше приложение должно всегда отвечать с как можно меньшей нагрузкой.
https://github.com/ddopson/underscore-cli
источник
Для этого вы можете создать вспомогательный инструмент: создать вспомогательную функцию, чтобы вы могли использовать ее везде в своем приложении.
Вот мой маршрут темы, где я пытаюсь получить все темы
Ответ мы получаем
источник
Вы можете использовать промежуточное программное обеспечение, чтобы установить тип контента по умолчанию и установить тип контента по-разному для определенных API. Вот пример:
источник
Для заголовка половины вопроса, я дам пару слов
res.type
здесь:эквивалентно
Источник: экспресс документы :
источник
Старая версия Express используется
app.use(express.json())
илиbodyParser.json()
читайте больше о промежуточном программном обеспечении bodyParserНа последней версии экспресса мы могли бы просто использовать
res.json()
источник
req.body
является объектом, отправляемым как тело запроса.