Данные экспресс 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));
});

Нажмите здесь для дальнейшего описания