私はエクスプレス4.0を使用していますが、ボディパーサーがエクスプレスコアから削除されたことは知っています。推奨される代替品を使用していますが、
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);
ベストアンサー1
つまり、bodyParser()
コンストラクタの使用は非推奨2014-06-19現在。
app.use(bodyParser()); //Now deprecated
メソッドを個別に呼び出す必要があります
app.use(bodyParser.urlencoded());
app.use(bodyParser.json());
等々。
それでも警告が表示される場合はurlencoded
、
app.use(bodyParser.urlencoded({
extended: true
}));
configextended
オブジェクト キーにはデフォルト値がないため、明示的に渡す必要があります。
Express >= 4.16.0 を使用している場合、ボディ パーサーがメソッドexpress.json()
との下に再度追加されていますexpress.urlencoded()
。