Отправка формы методом GET в Express

Сейчас мы научимся получать на сервере данные отправленной формы. Пусть у нас есть следующая форма:

<form action="/target/" method="GET"> <input name="test1"> <input name="test2"> <input type="submit"> </form>

Давайте отдадим эту форму при обращении к главной странице сайта:

app.get('/', function(req, res) { res.render('form'); });

Наша форма будет отправляться на адрес, написанный в атрибуте action. Давайте напишем обработчик этого адреса:

app.get('/target/', function(req, res) { res.send('result'); });

Отправленная форма попадет на этот обработчик, при этом данные формы будут содержаться в req.query в виде объекта. В этом объекте ключами будут значения атрибутов name инпутов из формы, а значениями - введенные данные.

Пусть, к примеру, в первый инпут мы ввели число 1, а во второй - число 2. Тогда объект с данными будет выглядеть следующим образом:

app.get('/target/', function(req, res) { console.log(req.query); // выведет {test1: '1', test2: '2'} res.send('result'); });

Можно вывести каждое значение по отдельности:

app.get('/target/', function(req, res) { console.log(req.query.test1); console.log(req.query.test2); res.send('result'); });

Можно что-то сделать с введенными данными и отправить результат обратно. Найдем, к примеру, сумму введенных чисел:

app.get('/target/', function(req, res) { let num1 = +req.query.test1; let num2 = +req.query.test2; let sum = num1 + num2; res.send('result: ' + sum); });

Сделайте форму с тремя инпутами. После отправки формы отправьте в браузер сумму введенных в инпуты чисел.