В моем приложении узла я использую экспресс. все работает нормально, но я получаю ошибку в файле cmd
. Использую все обновленные модули ...
мой код:
var express = require('express');
var bodyParser = require('body-parser');
var jade = require('jade');
var app = express();
app.set('view engine', 'jade');
app.set('views', __dirname + '/views');
app.use(express.static(__dirname + '/public'));
app.use(bodyParser.json()); // to support JSON-encoded bodies
app.use(bodyParser.urlencoded()); // to support URL-encoded bodies
app.get('/',function(req,res){
res.render('index.jade');
});
app.get('/login',function(req,res){
res.render('index.jade');
});
app.post('/login',function(req,res){
console.log(req.body);
});
app.get('/signup',function(req,res){
res.render('signup.jade');
});
var env = process.env.PORT || 3000;
app.listen(env, function(req, res){
console.log('i am working!');
});
Ошибка:
D:\myLogin>node app
body-parser deprecated undefined extended: provide extended option app.js:11:20 //why i am getting this?
i am working!
{ username: 'jbarif@gmail.com', password: 'pass' } // i am getting response
Может ли кто-нибудь помочь мне разобраться в этой проблеме, пожалуйста?
Ответы:
Вы должны явно указать
extended
наbodyParser.urlencoded()
так значение по умолчанию будет меняться в следующей версии сbody-parser
. Пример:Начиная с
express
версии 4.16.0, вы также можете:источник
qs
модуль для синтаксического анализа тела, что позволяет анализировать вложенный массив, такой как синтаксис, напримерtest[foo][bar]=baz
(который становится{'test': {'foo': {'bar': 'baz'}}}
)Внимание: с
express version => 4.16.0
помощьюbody-parser
промежуточного программного обеспечения было добавлено обратно методыexpress.urlencoded()
иexpress.json()
Что можно использовать как:
источник
В сообщении об ошибке говорится, что вам нужно предоставить расширенную опцию для парсера тела следующим образом:
источник
Начиная с Express версии 4.16.0, ожидается, что вы передадите расширенное свойство внутри bodyParser.urlencoded ()
См. Образец на странице документации npm.js: https://www.npmjs.com/package/body-parser#expressconnect-top-level-generic
источник
Если вы находитесь здесь после мая 2020 года, это означает, что вы наверняка используете узел версии v13.12.0 .. Итак, app.use (express.urlencoded ({extended: true}))
Это наверняка сработает для вас .... # peace
источник
источник