expressは「body-parser deprecated undefined extended」としてエラーをスローします


127

私のノードアプリでは、エクスプレスを使用しています。すべて正常に動作しますが、でエラーが発生します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 2018年

@RamprasathSelvam-コード、モジュールのバージョン、または統合に問題がある可能性があります。確認してください
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

5
@SamarthAgarwal readmeによると、qsモジュールを使用して本体を解析します。これにより、次のように構文のようなネストされた配列の解析が可能になりますtest[foo][bar]=baz(これは{'test': {'foo': {'bar': 'baz'}}}
Bailey Parker


14

エラーは、次のようにボディパーサーに拡張オプションを提供する必要があることを示しています:

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

0

から 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


0

ここにいる場合は、2020年5月以降、バージョンv13.12.0のノードを確実に使用していることになります。したがって、app.use(express.urlencoded({extended:true}))

これはきっとあなたのために働くだろう... #peace


-1

データ処理エラーを回避するために制限50 MBを設定します。urlencodeの制限50mbは、imageData throw urlを渡すのに役立ちます

  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.