Данные экспресс js
Может кто-то, пожалуйста, сообщите мне рекомендованный (до настоящего времени) способ получить данные формы POSTed в экспресс.
Так много инструкций/сообщений и т.д. Рассказывают о bodyParser, но это больше не связано с Express и другими блогами и т.д., Рекомендуем использовать urlencoded напрямую, но теперь это также невозможно.
Попытка найти точную информацию об этих рамках или технологиях делает мою голову.
BTW, в котором я заинтересован, - это очень простые и мелкие данные формы
Ответы
Ответ 1
Вы должны установить body-parser через npm-install. Теперь это отдельное промежуточное ПО.
После этого добавьте следующую строку в ваш app.js
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded());
// in latest body-parser use like below.
app.use(bodyParser.urlencoded({ extended: true }));
Он анализирует post запрос как object. Вы получите свои переменные в req.body.
В вашем post обработчик запросов.
app.post('/post',function(request,response){
console.log(request.body) //you will get your data in this as object.
})
Редактировать 1
Ответ выше был для специально bodyParser вопроса, OP искал bodyParser (не рекомендуется), который больше не был частью express.
Поскольку заголовок вопроса очень общий и ответ не включает в себя все аспекты данных form-data, я добавлю ответ @StLia в качестве редактирования.
Body-Parser Readme
Это не относится к составным телам из-за их сложной и типично большой природы. Для многокомпонентных тел вас могут заинтересовать следующие модули:
Ответ 2
Из README body-parser:
Это не относится к составным телам из-за их сложной и типично большой природы.
Вышеприведенное будет работать с x-www-form-urlencoded и json но не будет работать ни с одним multipart. form-data также является multipart с заголовком multipart/form-data.
В случае данных form-data, вашим лучшим решением будет использование express-formidable.
Ответ 3
Вы можете использовать для этого экспресс-грозный модуль. установите "express-formableable" следующей командой: npm install express-formidable
простой пример выглядит следующим образом
const express = require('express');
const formidable = require('express-formidable');
var app = express();
app.use(formidable());
app.post('/upload', (req, res) => {
//req.fields contains non-file fields
//req.files contains files
res.send(JSON.stringify(req.fields));
});
Нажмите здесь для дальнейшего описания