mongodb - node.js + express + mongodb 任何人都尝试过使用带有副本集的express' session 管理

标签 mongodb node.js express mongoose

我正在使用

  • Node 0.4.11
  • express 2.4.6
  • mongodb 1.8.3
  • Mongoose 2.1.2
  • 连接-mongodb 1.0.0

并尝试通过身份验证来实现副本集。

  1. 我想在数据库中存储不同类型的应用程序数据
  2. 我想在数据库中存储express' session 数据

与 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);
    }
});

但是如何让 session 管理发挥作用?!

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 来存储 session 数据?

最佳答案

您确定使用的是 connect-mongodb 而不是 connect-mongo 吗?

我不知道这些参数可以在何处与 connect-mongodb 一起使用。

不要传入连接设置。 connect-mongodb 可以采用直接 db 变量,它是 mongodb.Db 的实例。

这意味着您可以使用 mongoose 使用的相同连接,而不是让 connect-mongodb 仅为 session 创建新连接。

对于 mongoose,可以在 mongoose.connection.db 找到 mongodb.Db 实例。

因此以您的代码为例(假设 mongo 是您的 mongoose 对象):

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

关于mongodb - node.js + express + mongodb 任何人都尝试过使用带有副本集的express' session 管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7351318/

相关文章:

mongodb - 我可以使用对象的属性在 mongo 更新中进行基本数学运算吗?

javascript - Arduino yun vs tessel vs espruino

node.js - 我是否必须重新安装 CUDA 9.0 才能使用 tfjs-node-gpu?

node.js - 通过 NPM 安装 Browsersync 时权限被拒绝

node.js - Connect/Express 中的 'session' 和 'cookieSession' 中间件有什么区别?

node.js - 如何在nodejs模型中获取用户ip?并在我的表格列 ip_address 中更新

node.js - Mocha + Supertest 中 404 测试的“Body Parse”错误

arrays - 如何在MongoDB中指定字段进行多条件查找查询?

java - 无法使用 mongo 和 mongojack 反序列化 localdatetime

MongoDB 复合键查询,其中一个字段未知