繁体   English   中英

如何设置猫鼬和connect-mongo?

[英]How to set up mongoose and connect-mongo?

express启动我的应用程序时,我在设置TTL错误时出错。 可能是因为我通过不同的连接将相同的数据库用于会话和数据库操作。

因此,如果我想通过connect-mongo中间件将会话存储在mongodb中, connect-mongo 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连接? 对于这个问题,我在这里找到了答案。

首先,我创建了一个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
    }
},

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM