Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Получение данных из FormData на сервере (https://javascript.ru/forum/node-js-io-js/83787-poluchenie-dannykh-iz-formdata-na-servere.html)

Raadsert 12.03.2022 17:42

Получение данных из FormData на сервере
 
Здравствуйте.

Подскажите а каким образом можно получить данные из req.body при учёте что данные передавались через new FormData?

"body-parser" подключал, req.body пустой.

Вообще это хорошая идея передавать данные из форм через FormData?

ksa 12.03.2022 18:53

Raadsert, есть модули npm для предварительной обработки полученных данных от клиента в таком формате.
Например
https://www.npmjs.com/package/formidable
https://www.npmjs.com/package/multer

Я сейчас не помню что применяется у нас в разработке. Могу посмотреть только в понедельник, когда выйду на работу. :)

Цитата:

Сообщение от Raadsert
Вообще это хорошая идея передавать данные из форм через FormData?

Мы такое применяем там, где возможна передача файлов.

Raadsert 12.03.2022 21:29

Цитата:

Сообщение от ksa (Сообщение 544159)
Raadsert, есть модули npm для предварительной обработки полученных данных от клиента в таком формате.
Например
https://www.npmjs.com/package/formidable
https://www.npmjs.com/package/multer

Я сейчас не помню что применяется у нас в разработке. Могу посмотреть только в понедельник, когда выйду на работу. :)


Мы такое применяем там, где возможна передача файлов.

А почему только там где нужна передача файлов? Из-за необходимости подгружать модули?

ksa 12.03.2022 23:08

Цитата:

Сообщение от Raadsert
А почему только там где нужна передача файлов?

Так файлы с клиента передаются через FormData.
Обычные данные можно передавать и без нее.

ksa 14.03.2022 11:33

Цитата:

Сообщение от ksa
Могу посмотреть только в понедельник, когда выйду на работу.

Один из вариантов работы с FormData

//
const multer = require("multer");
//
app.use(multer().none());
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, "public")));

ksa 14.03.2022 11:46

В другом ПО используем такое
//
const fileUpload = require('express-fileupload');
//
app.use(
	fileUpload({
		createParentPath: true,
	})
);

Этот модуль не только читает присланные файлы, но и обрабатывает значения полей.

Raadsert 14.03.2022 16:30

Цитата:

Сообщение от ksa (Сообщение 544173)
app.use(express.json());
app.use(express.urlencoded({ extended: false }));

А я читал что в новых версиях express, больше нет поддержки .urlencoded и нужно добавлять body-parser.

ksa 14.03.2022 23:17

Raadsert, я просто привел пример того, что было под рукой. :)
ПО сейчас меняется довольно быстро, т.ч. "начинать сначала" можно только по проектные задачки.
Т.н. продуктовые ПО довольно инертны в своей "раме", поскольку есть тактические задачи и именно их нужно решать в оперативном порядке.


Часовой пояс GMT +3, время: 03:43.