Node.js: Обработка данных из форм с body-parser

Получение и обработка данных от пользователя – важная составляющая интерактивных веб-приложений. В этом уроке мы научимся получать данные через формы и обрабатывать их с помощью Node.js и Express.js. Для работы с формами потребуется библиотека body-parser.

Установка Body-Parser

Для обработки данных из форм установите пакет body-parser, выполнив в терминале команду:

npm install body-parser

Эта библиотека упрощает получение и обработку данных из форм.

Подготовка формы

Пример формы (расположенной, например, в шапке сайта):

Для корректной работы добавьте атрибуты:

  • method="post": указывает метод передачи данных на сервер (POST).
  • action="/check-user": указывает URL-адрес обработчика данных (в примере — /check-user).
  • Для поля ввода (<input>) укажите атрибут name="username" — имя поля для получения данных в обработчике.
  • Для кнопки отправки (<button>) укажите атрибут type="submit" для отправки данных формы.

Пример формы:

<form method="post" action="/check-user">
  <input type="text" name="username">
  <button type="submit">Поиск</button>
</form>

Обработка данных в Node.js

В index.js создайте обработчик для URL /check-user. Так как используется метод POST, обрабатываем POST-запросы:

app.post('/check-user', (req, res) => {
  console.log(req.body);
});

Этот код выводит в консоль содержимое объекта req.body с данными из формы. Для корректной работы body-parser, используйте его в middleware:

app.use(express.urlencoded({ extended: false }));

Это обеспечит корректную обработку данных из формы.

Проверка и перенаправление

Добавим логику проверки данных и перенаправления:

app.post('/check-user', (req, res) => {
  let username = req.body.username;
  if (username === "") {
    res.redirect('/');
  } else {
    res.redirect(`/user/${username}`);
  }
});

Код проверяет, пустое ли поле username. При пустом значении перенаправляет на главную страницу (/), иначе — на страницу /user/{username}, где {username} — значение, введенное пользователем.

Рассмотрен процесс получения и обработки данных из HTML-формы с помощью Node.js, Express.js и body-parser. Теперь можно создавать интерактивные веб-приложения, обрабатывающие данные пользователя и выполняющие перенаправления.

Что будем искать? Например,программа