node.js + express + mongodb任何人都曾尝试使用快速'会话pipe理与副本集

我在用着

  • 节点0.4.11
  • expression2.4.6
  • mongodb 1.8.3
  • mongoose2.1.2
  • connect-mongodb 1.0.0

并尝试使用身份validation来实现副本集。

  1. 我想在DB中存储不同types的应用程序数据
  2. 我想在数据库中存储快速的会话数据

与mongoose的一个“正常”连接工作:

mongo.connectSet('mongodb://user:secret@host:27017/test, mongodb://host:27018, mongodb://host:27019, mongodb://host:27020', function (err) { if (err) { console.log("could not connect to DB: " + err); } }); 

但是如何让会话pipe理工作?!

 app.use(express.session({ cookie: {maxAge: 60000 * 20}, // 20 minutes secret: 'foo', store: new MongoStore({ host: 'host', port: [27017, 27018, 27019, 27020], dbname: 'test', rs_name: 'rstest', username: 'user', password: 'secret' }) })); 

这不工作:(

这实际上是可能的吗? 或者我应该使用不同的MongoDB来存储会话数据?

你确定你正在使用connect-mongodb而不是connect-mongo?

我没有看到这些参数可以与connect-mongodb一起使用。

不要通过连接设置。 connect-mongodb可以直接使用dbvariables,这是mongodb.Db的一个实例。

这意味着您可以使用与mongoose使用的相同的连接,而不是使用connect-mongodb为会话创build新的连接。

对于mongoose,可以在mongoose.connection.db中findmongodb.Db实例。

所以用你的代码作为例子(假设mongo是你的mongoose对象):

 app.use(express.session({ cookie: {maxAge: 60000 * 20}, // 20 minutes secret: 'foo', store: new MongoStore({db: mongo.connection.db}) }));