[node.js] express는`body-parser deprecated undefined extended`로 오류를 발생시킵니다.
내 노드 앱에서 Express를 사용하고 있습니다. 모두 잘 작동하지만 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
. 예:
app.use(bodyParser.urlencoded({ extended: true }));
이후 express
4.16.0, 당신은 할 수 있습니다 :
app.use(express.urlencoded({ extended: true }))
답변
주의 : 로 미들웨어 방법에 따라 다시 첨가 하고express version => 4.16.0
body-parser
express.urlencoded()
express.json()
다음과 같이 사용할 수 있습니다.
app.use(express.urlencoded({extended: true}));
app.use(express.json());
답변
오류는 다음과 같이 body-parser에 대한 확장 옵션을 제공해야한다고 말합니다.
app.use(bodyParser.urlencoded({ extended: false }))
답변
Express 버전 4.16.0 에서와 마찬가지로 bodyParser.urlencoded () 내부의 확장 속성 을 전달해야합니다.
// parse JSON-encoded bodies and URL-encoded bodies
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
샘플은 npm.js 문서 페이지를 참조하십시오 : https://www.npmjs.com/package/body-parser#expressconnect-top-level-generic
답변
여기에 계시다면 2020 년 5 월 이후에 v13.12.0 버전의 노드를 사용하고 있음을 의미합니다. 따라서 app.use (express.urlencoded ({extended : true}))
이 확실하게 당신을 위해 일합니다 …. # peace
답변
데이터 처리 오류를 방지하기 위해 제한을 50MB로 설정하십시오.
app.use(bodyParser.json({
limit : '50mb' ///////// LIMIT for JSON
}));
app.use(bodyParser.urlencoded({
limit : '50mb', ///////// LIMIT for URL ENCODE (image data)
extended : true
}));