NodeJS. Как отправить данные в формате JSON.
Всем привет! В этой статье мы рассмотрим, как отправлять данные клиенту в JSON формате в NodeJS.
Введение
В прошлой статье мы рассмотрели, как отправлять HTML страницы клиенту, испоьзуя потоки в NodeJS. Сегодня же мы рассмотрим, как отправлять данные в формате JSON.
Мы не будем использовать потоки для решения этой задачи, поэтому вы можете удалить весь код, относящийся к ним. Вместо них мы будем использовать end() метод, который нам уже знаком и применялся в одной из предыдущих статей.
Как отправить JSON
Первым делом мы должны поменять заголовок, чтобы браузер смог правильно обработать наши данные:
res.writeHead(200, {'Content-Type': 'application/json'});
Теперь давайте создадим объект, который мы хотим отправить клиенту:
var myObj = {
name: 'John',
job: 'programmer',
age: 27
};
Теперь давайте отправим данные клиенту:
res.end(myObj);
Но на самом деле такой код не заработает правильно. Дело все в том, что метод end() ожидает увидеть данные в формате строки или буфер. У нас же есть объект, но мы можем сделать из него строку следующим образом:
res.end(JSON.stringify(myObj));
Теперь, если вы запустите приложение, то увидите, что данные пришли в JSON формате в виде строки. Также вы можете использовать инструменты разработчика в браузере и посмотреть, что заголовок также был установлен правильно.
Зачем отправлять JSON данные клиенту
У вас, возможно, возник вопрос, а зачем вообще отправлять данные клиенту в JSON формате. Чтобы ответить на этот вопрос, представьте, что у вас есть какой-нибудь javascript, выполняющийся на стороне клиента(frontend), и он может создать какой-нибудь запрос. Например, у вас есть API. Вы можете написать следующий запрос:
localhost:3000/api/request
И сервер должен будет отправить нам данные по этому запросу. Удобнее всего будет отправлять их именно в формате JSON, чтобы скрипт, работающий на стороне клиента, мог потом с легкостью эти данные обработать.
Заключение
Итак, сегодня мы рассмотрели, как отправлять данные клиенту в формате JSON в NodeJS.
Спасибо за внимание!
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.