web-dev-qa-db-ja.com

ExpressJSエラー:ボディパーサーは非推奨

質問 Node.js APIをビルドしようとしていますが、server.jsファイルを作成すると、コードは次のようになります。

var express = require('express');
var express = require('body-parser');

var app = express();
app.use(bodyParser.json());

app.get('/api/posts', function(req,res) {
res.json([
    {
        username: 'oscar',
        body: 'hello'
    }

])
})

app.listen(3000, function() {
console.log('Server Listening on', 3000)
})

ただし、コマンドプロンプトで次のエラーが発生します。

body-parser deprecated bodyParser: use individual json.urlencoded
middlewares server.js:4:11
body-parser deprecated undefined extended: provide extended option
node_modules\body-parser\index.js:85:29

これを次のように変更してみました:

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

そして

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

他の投稿が示唆しているように、それでも同じエラーが発生します。今何をすべきかわからない!助けてください。

ありがとう!

10
Richard WU
var app = express();

// configure body-parser

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

同様の非推奨の警告がありました。これが私の元のコードです:

var express = require('express');
var bodyParser = require('body-parser');

var app = express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded());

{extended: true}を追加すると、警告が修正されました。変更されたコードは次のとおりです。

var express = require('express');
var bodyParser = require('body-parser');

var app = express();

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

実際にはapp.use(bodyParser.urlencoded({extended: true}));という行は必要ありません。

私はそれを次のコードで動作させることができます:

_var express = require('express');
var bodyParser = require('body-parser');

var app = express();

app.use(bodyParser.json());
_

app.user(bodyParser.json());がある限り、エラーは発生しません。

2
breaktop

タイプミスがない限り、次のように変更します。

var express = require('body-parser');

var app = express();
app.use(bodyParser.json());

に:

var bodyParser   = require('body-parser');
var app = express();
app.use(bodyParser());

リクエストオブジェクトとレスポンスオブジェクトの機能を確認してください ここ

2
sandeep s