1. ホーム
  2. node.js

[解決済み] bodyParser は非推奨です express 4

2022-01-29 17:46:47

質問

express 4.0 を使用しており、body パーサーが express コアから削除されたことは承知しています。推奨される置換を使用していますが、次のような問題が発生します。

body-parser deprecated bodyParser: use individual json/urlencoded middlewares server.js:15:12 body-parser deprecated urlencoded: explicitly specify "extended: true" for extended parsing node_modules/body-parser/index.js:74:29

このミドルウェアと思われるものはどこにあるのでしょうか? それとも、このエラーは出ないはずでしょうか?

var express     = require('express');
var server      = express();
var bodyParser  = require('body-parser');
var mongoose    = require('mongoose');
var passport    = require('./config/passport');
var routes      = require('./routes');

mongoose.connect('mongodb://localhost/myapp', function(err) {
    if(err) throw err;
});

server.set('view engine', 'jade');
server.set('views', __dirname + '/views');

server.use(bodyParser()); 
server.use(passport.initialize());

// Application Level Routes
routes(server, passport);

server.use(express.static(__dirname + '/public'));

server.listen(3000);

解決方法は?

を使うということです。 bodyParser() コンストラクタ 非推奨 , 2014-06-19現在。

app.use(bodyParser()); //Now deprecated

ここで、メソッドを個別に呼び出す必要があります

app.use(bodyParser.urlencoded());

app.use(bodyParser.json());

といった具合に。

を使っても警告が表示される場合は urlencoded を使用する必要があります。

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

extended のキーは、デフォルト値を持たないため、明示的に渡す必要があります。

Express >= 4.16.0 を使用している場合、ボディ・パーサーがメソッドの下に再追加されました。 express.json()express.urlencoded() .