我正在使用快递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);
8 回答
app.use(bodyParser.urlencoded({extended: true}));
我有同样的问题,但这对我有用 . 您可以尝试这个扩展部分 .
我发现在添加时
帮助,有时这是你的查询的问题,决定了如何处理它 .
例如,可能是您的参数在 URL 而不是在正文中传递
在这种情况下,您需要同时捕获 body 和 url 参数并使用可用的参数(在下面的情况下优先选择body参数)
let me clarify why we use body parser?
安装(项目文件夹的位置)
npm install body-parser
或npm i body-parser
现在将它添加到您在package.json中定义的主js文件或文件中
如需更多说明,请浏览https://www.npmjs.com/package/body-parser
当
extended
设置为true时,放气(压缩)的物体将膨胀;当extended
设置为false时,放气体被拒绝 .您对使用快速生成器有什么看法,它会生成骨架项目,
without deprecated messages
出现在您的日志中运行此命令
现在,通过在
your Node projects folder
中键入此命令来创建新的Express.js启动应用程序 .该命令告诉express生成名为
node-express-app
的新Node.js应用程序 .然后
Go to the newly created project directory
,install npm packages
和start the app
使用该命令这意味着使用
bodyParser()
constructor 已经deprecated,截至2014-06-19 .您现在需要单独调用这些方法
等等 .
如果您仍然收到
urlencoded
的警告,则需要使用现在需要显式传递
extended
配置对象键,因为它现在没有默认值 .如果您使用Express> = 4.16.0,则已在方法
express.json()
和express.urlencoded()
下重新添加了主体解析器 .想 zero warnings ?像这样用它:
Explanation :不推荐使用
extended
选项的默认值,这意味着您需要显式传递true或false值 .在旧版本的express中,我们不得不使用:
因为body-parser是node和express之间的中间件 . 现在我们必须使用它: