使用“ReferenceError:setImmediate is not defined”添加快速会话中间件崩溃

时间:2014-04-27 22:09:33

标签: node.js session express

我有一个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"

导致此错误的原因是什么?如何解决?

1 个答案:

答案 0 :(得分:4)

如果您正在使用MemoryStore,则需要使用节点v0.10 +,因为在v0.10中引入了setImmediate。

更新:这被认为是Express 4.x中的一个错误。 Express 4.1.1 updates package.json以反映与Node v.10或更高版本的兼容性。