我刚刚升级到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
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
Moh*_*ani 26
在较新版本的快递中,像会话这样的中间件不与快递捆绑在一起.此外,如果要使用它们,则必须单独安装它们.喜欢 :
npm install express-session
Run Code Online (Sandbox Code Playgroud)
然后要求它:
var session = require('express-session');
Run Code Online (Sandbox Code Playgroud)
然后使用这个:
app.set('trust proxy', 1) // trust first proxy
app.use(session({
secret: 'keyboard cat',
resave: false,
saveUninitialized: true,
cookie: { secure: true }
}))
Run Code Online (Sandbox Code Playgroud)
Kan*_*cor 12
我认为您的问题是从快递2升级到3.在Express 3中,以前与它们捆绑在一起的大多数软件包现在都是您需要在应用程序中需要的单个软件包.
当然你需要将它包含在你的package.json中并像往常一样进行npm安装.
var express = require('express')
var session = require('express-session')
var app = express()
app.use(session({secret: 'keyboard cat'}))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14724 次 |
| 最近记录: |