node.js - bodyParser 已弃用 express 4

标签 node.js express middleware

我正在使用 express 4.0,并且我知道 body 解析器已从 express 核心中取出,我正在使用推荐的替换,但是我得到了

body-parser 已弃用 bodyParser:使用单独的 json/urlencoded 中间件 server.js:15:12 body-parser 已弃用 urlencoded:为扩展解析显式指定“extended: true” 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() 构造函数已经deprecated ,截至 2014 年 6 月 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() 方法下重新添加了正文解析器。

关于node.js - bodyParser 已弃用 express 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24330014/

相关文章:

node.js - 即使布局设置为 True,Express Jade 布局也不会渲染

image - 在 node.js 中绘制图像

python - 如何将中间件添加到 App Engine 网络应用程序框架?

node.js - Node.js 是否可以进入交互模式?

javascript - 在 Node 中导出和要求不起作用,说类未定义

javascript - Express-Session 中的对象方法

javascript - 如何从 mithril 调用 app.js 中的代码

javascript - 发送明确的错误消息作为响应

plugins - 巴别塔 : replaceWithSourceString giving Unexpected token (1:1)

node.js - 进行异步调用的 Express 中间件