我一直在使用node.js,并在Web应用程序中表达了一段时间,突然间,我不再遇到有关"大多数中间件(如BodyParser)的错误"与Express捆绑在一起,必须单独安装"
这是因为我将NPM升级到4.0.2,并且在错误对话框中有一个链接记录了如何安装和使用新中间件。
Error: Most middleware (like bodyParser) is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#middleware.
at Function.get (/Users/Grayson/max_performance_survey_report_v1.5/node_modules/express/lib/express.js:99:13)
at Object.<anonymous> (/Users/Grayson/max_performance_survey_report_v1.5/server.js:27:16)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.runMain (module.js:604:10)
at run (bootstrap_node.js:394:7)
at startup (bootstrap_node.js:149:9)
编辑:我了解如何使用Express的新版本运行,以及如何安装新的中间件。我认为记录如何确切地回到Express/npm的旧版本,以便人们愿意。
您需要将丢失的中间件添加到软件包。
- https://github.com/senchalabs/connect#middleware
或或者,您可以在软件包中使用Express的旧版本。JSON如果对您有效。
从我在GitHub上的一个项目中查看package.json文件:
https://github.com/rsp/node-express-static-example/blob/master/package.json
它包括:
"dependencies": {
"express": "^4.14.0"
}
您可以在此处设置一些确切的版本:
"dependencies": {
"express": "2.0.0"
}
和npm install
只会尝试下载该特定版本。只需找出您的应用程序与之兼容并将其设置的最后一个版本。
使用Travis Plus Greenkeeper可以通过各种依赖项来测试代码。
您只是升级节点吗?无论如何,您应该坚持使用较新版本的Nodejs,因为它们已经进行了一些安全升级和各种有用的内容。
Express希望您分开包含身体比较:
在控制台中:
npm install body-parser --save
代码:
// parse application/json
app.use(bodyParser.json());
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: true }));