express는`body-parser deprecated undefined extended`로 오류를 발생시킵니다.


127

내 노드 앱에서 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

이 문제를 이해하는 데 도움이 될 수 있습니까?


@RamprasathSelvam-네, 그랬습니다 !!
3gwebtrain

@RamprasathSelvam - 코드 5 월 뭔가 잘못, 모듈 또는 통합의 버전을 확인하시기 바랍니다
3gwebtrain

최악의 오류 메시지는 어디에서 투표합니까? 특히 이런 일이 발생할 가능성이 높다는 점을 감안하면 메시지는 무작위 단어 가방처럼 보입니다.
스펙터

답변:


263

명시 적으로 설정해야합니다 extended에 대한 bodyParser.urlencoded()이후 의 기본 값은 다음 주요 버전으로 바꿀 것입니다body-parser. 예:

app.use(bodyParser.urlencoded({ extended: true }));

이후 express4.16.0, 당신은 할 수 있습니다 :

app.use(express.urlencoded({ extended: true }))

11
이것은 무엇을합니까?
Samarth Agarwal

6
@SamarthAgarwal받는 따르면 README , 그것이 사용 qs구문 등 중첩 배열 가능 바디를 파싱 모듈과 같은 구문 분석 test[foo][bar]=baz(해지는 {'test': {'foo': {'bar': 'baz'}}})
베일리 파커


14

오류는 다음과 같이 body-parser에 대한 확장 옵션을 제공해야한다고 말합니다.

app.use(bodyParser.urlencoded({ extended: false }))


0

여기에 계시다면 2020 년 5 월 이후에 v13.12.0 버전의 노드를 사용하고 있음을 의미합니다. 따라서 app.use (express.urlencoded ({extended : true}))

이 확실하게 당신을 위해 일합니다 .... # peace


-1

데이터 처리 오류를 방지하기 위해 제한을 50MB로 설정하십시오.

  app.use(bodyParser.json({
        limit : '50mb'    ///////// LIMIT for JSON
      }));

    app.use(bodyParser.urlencoded({
        limit : '50mb', ///////// LIMIT for URL ENCODE (image data)
        extended : true
      }));
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.