Session Node.js,无限循环会话

Session Node.js,无限循环会话,session,node.js,mongodb,connect,Session,Node.js,Mongodb,Connect,我正在使用expressjs和connect-mongo@0.1.7作为会议的蒙戈斯托尔 实际情况是,会话代码正在工作。但在我将node和npm升级到最新版本,并将Mongo升级到2.0.2之后,如果我将express.session(store:new MongoStore)放进去,它将运行一个无限循环。知道发生了什么吗 这是我的密码: express.createServer( express.cookieParser(), express.bodyParser(), expre

我正在使用expressjs和connect-mongo@0.1.7作为会议的蒙戈斯托尔

实际情况是,会话代码正在工作。但在我将node和npm升级到最新版本,并将Mongo升级到2.0.2之后,如果我将express.session(store:new MongoStore)放进去,它将运行一个无限循环。知道发生了什么吗

这是我的密码:

express.createServer(
  express.cookieParser(),
  express.bodyParser(),
  express.session({ secret: cfg.session_secret,
  cookie: { domain: 'mydomain.com' },
  store:new MongoStore({

    db: cfg.db_session_name,
    host: cfg.db_ip,
    port: cfg.db_port
    })
  })
)
以下是错误:

TypeError: Not a string or buffer
at Object.createHmac (crypto.js:129:21)
at Object.sign (/node_modules/connect-mongo/node_modules/connect/lib/utils.js:135:6)
at Object.serialize (/node_modules/connect-mongo/node_modules/connect/lib/middleware/session/cookie.js:115:17)
at ServerResponse.writeHead (/node_modules/express/node_modules/connect/lib/middleware/session.js:265:46)
at ServerResponse._implicitHeader (http.js:808:8)
at ServerResponse.end (http.js:645:10)
at next (/node_modules/express/node_modules/connect/lib/http.js:167:13)
at pass (/node_modules/express/lib/router/index.js:219:24)
at nextRoute (/node_modules/express/lib/router/index.js:209:7)
at callbacks (/node_modules/express/lib/router/index.js:274:11)

我遇到了同样的问题。我相信这是由express和connect mongo使用不同版本的connect造成的,而这些不同版本对cookieParser具有不同的方法签名。connect mongo正在使用的版本希望传递一个用于对会话数据进行签名的“机密”密钥,但express使用的版本不提供该密钥


GitHub上有一个支持connect 2.0的express更新,但npm尚未提供该更新。

刚刚获得了该更新的临时解决方案。来自另一个节点“jacobstr”

见此:


因此,我转到node_modules/connect mongo文件夹。编辑package.json如下:(只有一个变化:我很困惑,你说你得到了一个无限循环,但也给出了一个无关的错误消息?它只会永远发送错误消息,。继续发送。你的连接版本是什么?我相信这是最近更新的,可能缺乏一些向后兼容性。