我使用的是EXPRESS4.0,我知道主体解析器已经从express核心中去掉了,我使用的是推荐的替代品,但是我得到了
我在哪里可以找到这个所谓的中间件?或者我不应该得到这个错误?
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-06-20 23:07:37
这意味着使用
构造函数
一直是
已弃用
,截至2014-06-19。
app.use(bodyParser()); //Now deprecated
现在,您需要分别调用这些方法
app.use(bodyParser.urlencoded());
app.use(bodyParser.json());
以此类推。
如果您仍然收到以下警告
您需要使用
app.use(bodyParser.urlencoded({
extended: true
}));
The The The
config对象键现在需要显式传递,因为它现在没有默认值。
如果您使用的是Express >= 4.16.0,则已在方法下重新添加了正文解析器
和
..。
发布于 2020-01-24 15:33:48
如果您使用的是express >
**
,您可以使用**
和
The The The
和
添加了中间件,以提供开箱即用的请求正文解析支持。它使用
模块模块在下面,所以当前需要单独模块的应用程序可以切换到内置的解析器。
来源
Express 4.16.0 -发布日期: 2017-09-28
有了这个,
const bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
变成了,
const express = require('express');
app.use(express.urlencoded({ extended: true }));
app.use(express.json());
发布于 2014-11-17 14:53:51
在较旧版本的express中,我们必须使用:
app.use(express.bodyparser());
因为body-parser是介于node和express之间的中间件。现在我们必须像这样使用它:
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
https://stackoverflow.com/questions/24330014
复制相似问题