【问题标题】:How to set up mongoose and connect-mongo?如何设置 mongoose 和 connect-mongo?
【发布时间】:2014-02-13 18:45:30
【问题描述】:

express 中启动我的应用程序时出现Error setting TTL 错误。也许问题是因为我通过不同的连接将同一个数据库用于会话和数据库操作。

所以如果我想通过connect-mongo 中间件将我的会话存储在 mongodb 中并使用 mongo 作为我的应用程序特定数据的数据库,是否需要遵守特定的要求 connect-mongomongoose 的顺序?

目前我的应用如下所示:

App.app.use(express.session({
store: new MongoStore({
    db: settings.cookie.db,
    host: settings.cookie.host,
    port: settings.cookie.port
}),
    secret: settings.cookie.secret
}))

后来我为 mongo 设置了启动连接:

 function connect(connectionString) {
     mongoose.connect(connectionString)

     var db = mongoose.connection
     db.on('error', console.error.bind(console, 'connection error'))
     db.once('open', function callbck() {
        console.log('Mongoose connected at: ', connectionString)
       })
     } 

没有错误日志分开

另外,当我关闭我的应用程序(比如说从命令行)时,如何正确断开 mongo 连接?对于这个问题我找到了答案here我想。

【问题讨论】:

    标签: node.js mongodb express mongoose connect


    【解决方案1】:

    首先我创建了一个 sessionStore 模块

    var mongoose = require('mongoose'),
    express = require('express'),
    MongoStore = require('connect-mongo')(express),
    sessionStore = new MongoStore({mongoose_connection: mongoose.connection});
    module.exports = sessionStore;
    

    然后我将它包含在应用程序中

    sessionStore = require('libs/sessionStore');
    

    最后

    app.use(express.session({
      secret: config.get('session:secret'),
      key: config.get('session:key'),
      cookie: config.get('session:cookie'),
      store: sessionStore
    }));
    

    这是配置

    "session": {
        "secret": "secret",
        "key": "connect.sid",
        "cookie": {
            "path": "/",
            "httpOnly": true,
            "maxAge": null
        }
    },
    

    【讨论】:

      猜你喜欢
      • 2021-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-20
      • 1970-01-01
      • 2018-12-13
      • 2021-06-13
      相关资源
      最近更新 更多