Отправка формы методом GET на текущую страницу в Express

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

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

Пусть наша форма и показывается, и отправляется на следующий обработчик:

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

Давайте выведем в консоль данные отправленной формы:

index.jsapp.get('/', function(req, res) {
  console.log(req.query);
  res.render('form');
});

Наш обработчик выполнится два раза. Первый раз мы зайдем на страницу и увидим форму. В этом случае в консоль выведется пустой объект с данными формы. Во второй раз мы попадем на обработчик после отправки формы и увидим в консоли введенные данные.

Выводим результат около формы

Давайте для примера при первом заходе покажем форму, а при втором заходе форму, а под ней - сумму введенных чисел.

Сделаем обработчик:

index.jsapp.get('/', function(req, res) {
  res.render('form', {
    sum: +req.query.test1 + +req.query.test2,
  });
});

Доработаем код файла с формой:

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

{{#if sum}}
  {{ sum }}
{{/if}}