Данные экспресс 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));
});
Нажмите здесь для дальнейшего описания