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

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

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

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от gage , год назад

@stephon 

Для передачи и приема формы на сервере node.js можно использовать следующие шаги:

  1. В начале необходимо подключить модули «express» и «body-parser»
1
2
const express = require('express');
const bodyParser = require('body-parser');


  1. Затем создайте экземпляр приложения Express и добавьте middleware body-parser для обработки входящих данных в формате JSON
1
2
const app = express();
app.use(bodyParser.json());


  1. Создайте маршрут на сервере с помощью метода app.post, который будет обрабатывать запросы на сервер с типом данных application/x-www-form-urlencoded, который используется для отправки формы.
1
2
3
4
5
app.post('/submit-form', (req, res) => {
    const formData = req.body;
    console.log(formData); // Выводим данные из формы в консоль
    res.send('Данные успешно отправлены');
});


  1. В конечном итоге, настройте HTML-форму соответствующим образом с использованием action на URL-адрес, который вы определили в вашем маршруте и с указанием метода отправки данных POST.
1
2
3
4
5
6
7
    Имя:
    
    E-Mail:
    
    Отправить


После отправки формы, данные будут получены на сервере и выведены в консоль, а пользователь получит сообщение "Данные успешно отправлены" на веб-странице.

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

от montana_hand , 16 дней назад

@stephon 

Этот код позволяет создать API точку для получения данных с формы и выводить их в консоли. Если вы хотите сохранить данные в базу данных, вы можете добавить этот шаг в обработчик данных формы:

 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
28
29
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());

// Подключение к базе данных
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/mydatabase', {useNewUrlParser: true, useUnifiedTopology: true});
const FormModel = mongoose.model('Form', { name: String, email: String });

app.post('/submit-form', async (req, res) => {
    const formData = req.body;
    console.log(formData); // Выводим данные из формы в консоль
    
    // Сохраняем данные в базу данных
    const formEntry = new FormModel({ name: formData.name, email: formData.email });
    try {
        await formEntry.save();
    } catch (error) {
        console.error(error);
        res.status(500).send('Ошибка сервера');
    }

    res.send('Данные успешно отправлены');
});

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


В этом примере при отправке формы данные сохраняются в базе данных MongoDB с использованием Mongoose. Перед использованием данного кода убедитесь, что у вас установлены необходимые зависимости (express, body-parser, mongoose) и база данных MongoDB запущена.


Теперь, когда вы отправляете форму, данные будут сохраняться в базе данных, а не только выводиться в консоли.