回调在connect-mongo中不起作用

时间:2015-05-08 12:11:25

标签: node.js mongodb express session-store connect-mongo

我使用connect-mongo作为会话存储。 connect-mongo@0.4.0。

我的代码是

app.use(express.session({

    store: new MongoStore({
        url: 'mongodb://192.168.1.124:27017/ip_session',
    }, function(e) {
        // Start the app by listening on <port>
        var port = process.env.PORT || config.guiPort;

        var server = app.listen(port);
        console.log('Express app started on port ' + port);
    }),
    // 2 * 60 * 60 * 1000
    cookie: {
        expires: new Date(Date.now() + 7200000)
    },    
    secret: '**********'
}));

直到所有工作正常,但当我将connect-mongo版本升级到最新版本(0.8.1)。包含服务器启动脚本的回调无效。

function(e) {
    var port = process.env.PORT || config.guiPort;

    var server = app.listen(port);
    console.log('Express app started on port ' + port);
}
更新connect-mongo的版本后,

上面的代码无效。

你的帮助会很明显。 提前致谢。

1 个答案:

答案 0 :(得分:1)

根据代码判断,MongoStore的实例在其(连接)状态发生变化时会发出事件。所以也许这有效:

var store = new MongoStore({ url : ... });

store.on('connected', function() {
  // Start the app by listening on <port>
  var port = process.env.PORT || config.guiPort;

  var server = app.listen(port);
  console.log('Express app started on port ' + port);
});

app.use(express.session({
  store: store,
  ...
});