NodeJS. Как обрабатывать POST запросы.
Всем привет! В этой статье мы рассмотрим, как обрабатывать POST запросы в NodeJS.
POST запросы отличаются от GET запросов, которые мы рассматривали в прошлых статьях, тем, что данные в них передаются в закрытом виде. Это очень часто используется для передачи информации из форм. В прошлой статье мы как раз-таки создали форму, давайте ее и будем использовать для обработки POST запросов.
Поскольку такого удобного метода, как query(), для POST запросов нет, нам нужно установить дополнение под названием Body Parser. Найти вы его можете и скачать на сайте NPM.
После того, как вы его скачали и установили, подключите расширение в файле app.js:
var bodyParser = require('body-parser');
Теперь напишем следующий код:
var urlencodedParser = bodyParser.urlencoded({extended: false});
Это middleware для POST запросов.
Теперь начнем получать и обрабатывать наш POST запрос:
app.post('/contact', urlencodedParser, function(req, res) {
res.render('contact-success', {data: req.body});
});
Этот код делает следующее: когда мы отправляем форму, она ссылается на страницу /contact(т.е. на саму себя) и отправляет туда POST запрос. Мы этот POST запрос перехватываем, используем наш парсер для того, чтобы сразу получить данные в нормальном виде, а затем отрисовываем страницу по шаблону contact-success(мы далее создадим этот шаблон), куда передаем объект data, содержащий объект, который вернулся из ответа метода парсера body(), со свойствами, равными именам полей формы(who, department, email) и значениями, которые мы туда ввели. В общем-то, все просто и, благодаря парсеру, похоже на обработку GET запросов.
Теперь давайте создадим шаблон views/contact-success.ejs, куда скопируем весь код из файла contact.ejs. Удалим форму и в параграфе напишем следующее:
<p>Спасибо за обращение!</p>
<p>Вы связались с <%= data.who %> из <%= data.department %> отдела</p>
<p>Мы ответим вам на email: <%= data.email %></p>
Думаю, тут все понятно и пояснять не нужно.
А на этом сегодня все. Мы закончили изучение платформы NodeJS, и теперь у вас есть вся необходимая база знаний для того, чтобы создавать отличные приложения на ее основе. Однако, чтобы закрепить знания, мы создадим список дел на NodeJS в ближайшее время! Не пропустите!
Спасибо за внимание и удачи!
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.