我有一个Node应用程序。当我尝试添加会话中间件
时app.use(session({secret: 'keyboard cat', cookie: { maxAge: 50000000 }}));
没有进行任何进一步的更改,当任何路由到达res.send
时,我的应用程序崩溃并出现以下错误:
ReferenceError: setImmediate is not defined
at MemoryStore.set (/node_modules/express-session/session/memory.js:71:3)
at Session.save (/node_modules/express-session/session/session.js:63:25)
at ServerResponse.res.end (/node_modules/express-session/index.js:303:19)
at ServerResponse.res.send (/node_modules/express/lib/response.js:150:8)
at ServerResponse.res.json (/node_modules/express/lib/response.js:191:15)
at ServerResponse.res.send (/node_modules/express/lib/response.js:118:21)
我正在使用"express": "~4.0.0"
,"express-session": "~1.0.0"
和"cookie-parser": "~1.0.0"
导致此错误的原因是什么?如何解决?
答案 0 :(得分:4)
如果您正在使用MemoryStore,则需要使用节点v0.10 +,因为在v0.10中引入了setImmediate。
更新:这被认为是Express 4.x中的一个错误。 Express 4.1.1 updates package.json以反映与Node v.10或更高版本的兼容性。