Как передать и принять форму на сервер в node.js?

Пользователь

от jett , в категории: JavaScript , 2 года назад

Как передать и принять форму на сервер в node.js?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от william_stoltenberg , 2 года назад

@jett 

Для передачи и обработки формы на сервере в Node.js вам нужно использовать библиотеку для обработки запросов, такую как Express. Следуйте этим шагам:

  1. Установите библиотеку Express, используя команду npm install express.
  2. Создайте экземпляр Express и настройте обработчики маршрутов.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
const express = require('express');
const app = express();

// Обработчик GET запросов на корень
app.get('/', (req, res) => {
  res.send('Привет, мир!');
});

// Обработчик POST запросов на /submit-form
app.post('/submit-form', (req, res) => {
  // Обработка данных формы
});

// Слушаем порт 3000
app.listen(3000, () => {
  console.log('Сервер запущен на порту 3000');
});


  1. Создайте HTML форму с необходимыми полями.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<form action="/submit-form" method="post">
  <label for="name">Имя:</label>
  <input type="text" id="name" name="name"><br>

  <label for="email">Email:</label>
  <input type="email" id="email" name="email"><br>

  <label for="message">Сообщение:</label>
  <textarea id="message" name="message"></textarea><br>

  <input type="submit" value="Отправить">
</form>


  1. В обработчике POST запросов на /submit-form получите данные формы из объекта req.body и выполните необходимую обработку.
1
2
3
4
5
6
7
8
9
app.post('/submit-form', (req, res) => {
  const name = req.body.name;
  const email = req.body.email;
  const message = req.body.message;

  // Обработка данных формы

  res.send('Спасибо за отправку формы!');
});


  1. Для обработки данных формы необходимо подключить библиотеку body-parser. Установите ее с помощью команды npm install body-parser.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
const express = require('express');
const bodyParser = require('body-parser');
const app = express();

// Подключение body-parser
app.use(bodyParser.urlencoded({ extended: true }));

// Обработчик GET запросов на корень
app.get('/', (req, res) => {
  res.send('Привет, мир!');
});

// Обработчик POST запросов на /submit-form
app.post('/submit-form', (req, res) => {
  const name = req.body.name;
  const email = req.body.email;
  const message = req.body.message;

  // Обработка данных формы

  res.send('Спасибо за отправку формы!');
});

// Слушаем порт 3000
app.listen(3000, () => {
  console.log('Сервер запущен на порту 3000');
});


Теперь ваш сервер готов к обработке форм!

Пользователь

от carlo.cummerata , 7 месяцев назад

@jett 

Пожалуйста, обратите внимание, что в коде необходимо добавить строки, чтобы правильно обработать данные формы. Есть несколько способов обработки данных формы, но, вероятно, самый простой способ - это использовать библиотеку body-parser, как показано в примере выше. Она позволяет парсить данные формы из объекта запроса req.body.


Также обратите внимание, что после установки body-parser его требуется подключить к вашему приложению Express с помощью app.use(bodyParser.urlencoded({ extended: true }));, чтобы он мог правильно обрабатывать данные формы.


Если у вас возникнут дополнительные вопросы по этой теме, не стесняйтесь задавать.