В этой части мы разберём как отправлять ответы в Exxpress.js, какие типы ответов существуют, это будет не большая часть, но полезная как справочник.
Express.js Отправка ответа:
Мы уже показывали как отправлять ответ в третий части, которая про маршрутизацию, но там мы это сделали поверхностно, здесь же я хочу разобрать по подробнее.
Начнём с того, что в той статье мы по сути отправили обычную строку, но которая имела HTML теги, поэтому браузер воспринял это как HTML страницу, только без тега head
и т.д., но их он уже сам расставил.
Вот вам ещё раз этот пример, для напоминания:
1 2 3 | router.get('/', function(req, res) { res.send("<h1>Главная страница</h1>"); }); |
За ответ в callbeck
функции у нас отвечает параметр res
, в нём можно формировать параметры ответа. Как видите тут мы используем res.send()
, которая в качестве параметра принимает в себя строку, и отправляет её клиенту.
Но кроме это ответа, вы может отправлять, например JSON данные, это вам пригодиться, если вы используете тип свази сервера и клиента RestAPI.
Для отправки JSON данных используйте такой код:
1 2 3 | router.get('/', function(req, res) { res.json({name: "Вова", surname: "Пупкин"}); }); |
В res.json()
, в качестве параметра принимает в себя объект, который потом превращается в JSON, и потом на стороне клиента вы сможете как-то обрабатывать эти данные или сразу выводить.
Примечание:
JSON данные вы точно так же можете отправлять и через метод send()
, а метод json()
, скорее нужен для валидации и безопасности.
Также, и наверное самое главное, вы можете отправлять шаблон (Подробнее о шаблонах мы поговорим в одной из будущих частей), шаблоны вы будите хранить в папки «view».
Вот вам не большой пример использования:
1 2 3 | router.get('/', function(req, res) { res.render("index", {name: "Вова"}); }); |
В качестве первого параметра мы используем название нашего шаблона, без указания расширения, оно может быть любое, смотря какой шаблонизатор вы используете.
Второй параметр, это объект, в который мы передаём данные которые хотим отобразить в шаблоне, например, если мы открываем страницу пользователя, то туда мы передаём его имя, и отображаем это в шаблоне, в качестве заголовка и ещё где нибудь.
Ещё стоит сказать, что зависимо от полученных данных от пользователя, вы можете отправлять определённые данные, например отправить пользователя с определённым идентификатором или для пагинации.
Дополнительные методы:
На последок покажу вам дополнительные методы, которые вы возможно будите использовать:
- redirect() — Отправляет на другую страницу пользователя;
- download() — Отправляет файл для скачивания;
- end() — Останавливает ответ клиенту;
- sendFile() — Отправляет файл по HTTP;
- res.append() — Указывает нужные заголовки для ответа;
В целом, это самое основное, что вам стоит знать.
Вывод:
В этой части вы прочитали про то, как отправить ответ на Express.js и какие типы есть, думаю вам было очень интересно и полезно.