我正在使用 express 4.0,并且我知道正文解析器已从 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);
这意味着截至 2014 年 6 月 19 日,使用bodyParser() 构造函数 已被弃用。
bodyParser()
app.use(bodyParser()); //Now deprecated
您现在需要分别调用这些方法
app.use(bodyParser.urlencoded()); app.use(bodyParser.json());
等等。
如果您仍然收到警告,urlencoded则需要使用
urlencoded
app.use(bodyParser.urlencoded({ extended: true }));
现在extended需要显式传递配置对象键,因为它现在没有默认值。
extended
如果您使用 Express >= 4.16.0,则在方法express.json()和express.urlencoded().
express.json()
express.urlencoded()