一尘不染

bodyParser弃用Express 4

node.js

我正在使用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);

阅读 635

收藏
2020-07-07

共1个答案

一尘不染

这意味着自2014年6月19日起,不赞成使用bodyParser()
构造函数

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

您现在需要分别调用方法

app.use(bodyParser.urlencoded());

app.use(bodyParser.json());

等等。

如果仍然收到警告,则urlencoded需要使用

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

extended现在的配置对象的关键需要明确的被传递,因为它现在已经没有默认值。

如果您使用的快递> = 4.16.0,身体解析器已根据这些方法重新加入express.json()express.urlencoded()

2020-07-07