在express
启动应用程序时出现Error setting TTL错误。也许问题是因为我通过不同的连接使用会话和数据库操作相同的数据库。
因此,如果我想通过connect-mongo
中间件将我的会话存储在mongodb中并使用mongo作为我的数据库,那么需要尊重需要mongoose
和connect-mongo
的特定序列对于我的应用程序特定数据?
目前我的应用程序如下所示:
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。
答案 0 :(得分:3)
首先,我创建了一个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
}
},