Я использую Express 4.0, и я знаю, что анализатор тела был удален из ядра Express, я использую рекомендованную замену, однако я получаю
body-parser deprecated bodyParser: use individual json/urlencoded middlewares server.js:15:12
body-parser deprecated urlencoded: explicitly specify "extended: true" for extended parsing node_modules/body-parser/index.js:74:29
Где я могу найти это предполагаемое промежуточное ПО? или я не должен получать эту ошибку?
var express = require('express');
var server = express();
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
var passport = require('./config/passport');
var routes = require('./routes');
mongoose.connect('mongodb://localhost/myapp', function(err) {
if(err) throw err;
});
server.set('view engine', 'jade');
server.set('views', __dirname + '/views');
server.use(bodyParser());
server.use(passport.initialize());
// Application Level Routes
routes(server, passport);
server.use(express.static(__dirname + '/public'));
server.listen(3000);
источник
extended
?curl --data "user[email]=foo&user[password]=bar" localhost:3000/login
которые будут получены сервером,req.body
как{ user[email]: "foo", ...}
еслиreq.body
бы они были{user: {email: "foo", ... }}
сextended: true
.Хотите ноль предупреждений ? Используйте это так:
Объяснение : Значение параметра по умолчанию
extended
устарело, что означает необходимость явной передачи значения true или false.источник
app.use(bodyParser.json()).use(bodyParser.urlencoded({ extended: true }));
В старых версиях Express нам приходилось использовать:
потому что body-parser был промежуточным ПО между узлом и экспрессом. Теперь мы должны использовать это как:
источник
Если вы используете экспресс>
4.16
, вы можете использоватьexpress.json()
иexpress.urlencoded()
Source Express 4.16.0 - Дата выхода: 2017-09-28
С этим,
становится,
источник
Когда
extended
установлено значение true, тогда спущенные (сжатые) тела будут раздуваться; когдаextended
установлено значение false, спущенные тела отклоняются.источник
Как вы думаете, чтобы использовать экспресс-генератор, он сгенерирует скелетный проект, который
without deprecated messages
появился в вашем журнале?запустить эту команду
Теперь создайте новое начальное приложение Express.js, введя эту команду в
your Node projects folder
.Эта команда скажите express, чтобы сгенерировать новое приложение Node.js с именем
node-express-app
.затем
Go to the newly created project directory
,install npm packages
и сstart the app
помощью командыисточник
Я обнаружил, что при добавлении
помогает, иногда вопрос о том, как экспресс обрабатывает его, зависит от ваших запросов.
Например, может случиться так, что ваши параметры передаются в URL, а не в теле
В таком случае вам нужно захватить как параметры body, так и параметры url и использовать любой доступный параметр (предпочтение отдается параметрам body в приведенном ниже случае)
источник
app.use(bodyParser.urlencoded({extended: true}));
У меня та же проблема, но эта работа для меня. Вы можете попробовать эту расширенную часть.
источник