node.js + express + mongodb任何人都曾尝试使用快速'会话pipe理与副本集
我在用着
- 节点0.4.11
- expression2.4.6
- mongodb 1.8.3
- mongoose2.1.2
- connect-mongodb 1.0.0
并尝试使用身份validation来实现副本集。
- 我想在DB中存储不同types的应用程序数据
- 我想在数据库中存储快速的会话数据
与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}) }));