Всем привет! В этом материале рассмотрим, как обрабатывать POST запросы в NodeJS .

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 в ближайшее время! Не пропустите!

Спасибо за внимание и удачи!