Давайте теперь научимся отправлять формы
методом POST. Для этого изменим тип отправки
в атрибуте method
:
<form action="/target/" method="POST">
<input name="test1">
<input name="test2">
<input type="submit">
</form>
Будем отдавать нашу форму при запросе главной страницы:
app.get('/', function(req, res) {
res.render('form');
});
Сама форма в нашем случае будет отправляться
на другой адрес. Давайте напишем обработчик
этого адреса. При этом, так как наша форма
отправляется методом POST, то нам нужно написать
обработчик не app.get
, а app.post
:
app.post('/target/', function(req, res) {
res.send('result');
});
Данные формы, отправленной методом POST,
будут содержаться в теле запроса. То есть
нам нужно прочитать req.body
:
app.post('/target/', function(req, res) {
console.log(req.body); // так просто не будет работать
res.send('result');
});
Данные формы, однако, так просто не попадут
в req.body
- там тупо будет пусто.
Для поддержки работы нам нужно установить
промежуточное ПО body-parser
:
npm install body-parser
Подключим установленное ПО:
import bodyParser from 'body-parser';
Используем его для обработки всех форм:
app.use(bodyParser.urlencoded({extended: true}));
И вот теперь после отправки в req.body
будет содержаться объект с данными:
app.post('/target/', function(req, res) {
console.log(req.body); // объект с данными
res.send('result');
});
Спросите у пользователя его имя, город и страну. Выведите полученные данные на странице.