bodyParser已弃用express 4
我使用Express 4.0,我意识到身体parsing器已经被取出了快速核心,我使用推荐的替代品,但是我越来越
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 
我在哪里可以find这个假设的中间件? 或者我不应该得到这个错误?
 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() 构造函数已被弃用 ,截至bodyParser()日。 
 app.use(bodyParser()); //Now deprecated 
您现在需要分别调用这些方法
 app.use(bodyParser.urlencoded()); app.use(bodyParser.json()); 
等等。
 如果您仍然使用urlencoded发出警告,则需要使用 
 app.use(bodyParser.urlencoded({ extended: true })); 
 现在需要显式传递extendedconfiguration对象键,因为它现在没有默认值。 
 如果使用Express> = 4.16.0,则在express.json()和express.urlencoded()方法下已重新添加bodyparsing器。 
想要零警告 ? 像这样使用它:
 app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); 
  说明 : extended选项的默认值已被弃用,这意味着您需要显式传递true或false值。 
在旧版本的Express中,我们必须使用:
 app.use(express.bodyparser()); 
因为express是节点和body-parser之间的中间件。 现在我们必须使用它:
 app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json()); 
body-parser是一个快速的中间件,它读取一个表单的input,并将其存储为可通过
req.body访问的JavaScript对象req.body'必须安装(通过npm install --save body-parser)更多信息请参见: https://github.com/expressjs/body-parser
  var bodyParser = require('body-parser'); app.use(bodyParser.json()); // support json encoded bodies app.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies 
 当extended设置为真时,放气(压缩)的机构将被充气; 当extended设置为false时,放气的物体被拒绝。 
我发现,而添加
 app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); 
帮助,有时这是你的查询,决定如何expression处理它的问题。
例如,它可能是你的参数在URL中而不是在body中传递
在这种情况下,您需要捕获body和url参数,并使用可用的参数(在下面的情况下优先selectbody参数)
 app.route('/echo') .all((req,res)=>{ let pars = (Object.keys(req.body).length > 0)?req.body:req.query; res.send(pars); }); 
 你有什么意见使用快递发电机它将生成骨架项目开始, without deprecated messages出现在您的日志 
运行这个命令
 npm install express-generator -g 
 现在,通过在your Node projects folder键入此命令来创build新的Express.js初学者应用程序。 
 express node-express-app 
 该命令告诉express以名称node-express-app生成新的Node.js应用node-express-app 。 
 然后Go to the newly created project directory , install npm packages并使用该命令start the app 
 cd node-express-app && npm install && npm start