首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置mongoose和connect-mongo?

如何设置mongoose和connect-mongo?
EN

Stack Overflow用户
提问于 2014-02-13 03:33:44
回答 1查看 3K关注 0票数 1

express中启动我的应用程序时,我遇到了一个Error setting TTL错误。也许问题是因为我通过不同的连接使用同一个数据库进行会话和db操作。

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

目前我的应用看起来是这样的:

代码语言:javascript
复制
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设置了start the connection:

代码语言:javascript
复制
 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

EN

回答 1

Stack Overflow用户

发布于 2014-02-13 18:45:31

首先,我创建了一个sessionStore模块

代码语言:javascript
复制
var mongoose = require('mongoose'),
express = require('express'),
MongoStore = require('connect-mongo')(express),
sessionStore = new MongoStore({mongoose_connection: mongoose.connection});
module.exports = sessionStore;

然后我将其包含到应用程序中

代码语言:javascript
复制
sessionStore = require('libs/sessionStore');

最后,

代码语言:javascript
复制
app.use(express.session({
  secret: config.get('session:secret'),
  key: config.get('session:key'),
  cookie: config.get('session:cookie'),
  store: sessionStore
}));

这是config

代码语言:javascript
复制
"session": {
    "secret": "secret",
    "key": "connect.sid",
    "cookie": {
        "path": "/",
        "httpOnly": true,
        "maxAge": null
    }
},
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21737814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档