Приходит пустой body в POST запрос. NodeJS +EJS
При отправке с клиента POST запроса с помощью fetch на сервер приходит пустой body, хотя на клиент данные с формы поступают, в чём проблема?
Файл сервера.
const express = require('express');
const path = require('path');
const app = express();
const bodyParser = require("body-parser");
const User = require('./schemas/User');
app.set('view engine', 'ejs');
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
// Представления
app.use(express.static(path.join(__dirname, '/views/')));
app.use(express.static(path.join(__dirname, '/assets/')));
// CSS
app.use('/css', express.static(path.join(__dirname, 'node_modules/bootstrap/dist/css')));
// JS
app.use('/js', express.static(path.join(__dirname, 'node_modules/bootstrap/dist/js')));
app.post('/sign-up', (req, res) => {
// const user = new User({
// name: req.body.name,
// lastname: req.body.lastname,
// patronymic: req.body.patronymic,
// email: req.body.email,
// password: req.body.password,
// phone: req.body.phone,
// });
//
// await user.save().then(() => console.log(user));
res.send(req.body.name);
});
// [index.ejs]
app.get('/', async (req, res, next) => {
res.render('pages/index');
});
app.listen(5000, () => {
console.log('Сервер работает');
});
Файл клиента
const formSignUp = document.querySelector('.form-sign-up');
formSignUp.addEventListener('submit', async (e) => {
e.preventDefault();
console.log(formSignUp.name.value);
await fetch('/sign-up', {
method: 'POST',
body: {
name: formSignUp.name.value,
lastname: formSignUp.lastname.value,
patronymic: formSignUp.patronymic.value,
email: formSignUp.email.value,
password: formSignUp.password.value,
phone: formSignUp.phone.value,
},
}).then(res => res.text()).then(data => console.log(data));
});