Express 突然不包含任何中间件



我一直在使用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 }));

最新更新