节点js错误:大多数中间件(如会话)不再与Express捆绑在一起,必须单独安装

我刚刚升级到Express 3,我在中间件中看到一个错误。 特别:

Error: Most middleware (like session) is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#middleware.

堆栈跟踪是:

 at Function.Object.defineProperty.get (/home/phpsaravana/nodeshop/node_modules/express/lib/express.js:89:13) at module.exports (/home/phpsaravana/nodeshop/node_modules/connect-mongo/lib/connect-mongo.js:30:39) at Object.<anonymous> (/home/phpsaravana/nodeshop/admin.js:6:42) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Function.Module.runMain (module.js:497:10) at startup (node.js:119:16) at node.js:906:3 

我该如何解决?

在新版本的Express中,像会话这样的中间件不是捆绑在一起的,如果你想使用它们,你必须单独安装它们。 喜欢 :

  npm install express-session 

然后要求:

 var session = require('express-session'); ... 

我认为你的问题是从快递2升级到3.在快递3中,大多数以前与他们捆绑在一起的软件包现在都是单一的软件包,你需要在你的应用程序中。

当然,你需要把它包含在你的package.json中,并像往常一样进行npm安装。

 var express = require('express') var session = require('express-session') var app = express() app.use(session({secret: 'keyboard cat'})) 

请参阅: ExpressJS / Session