我使用https://mega.co.nz/#!ws8XHQyT!2NK5c2IgiO9jXM2AYDjkP-wzsi5Ub_kq7k56XIBYeFQ作为connect-mongo
的存储模块,所有工作都运行良好,直到我从ac20a4ed0c586b32e80f2156188cd1a2 c:\boot\bg-BG\bootmgr.exe.mui
4dae40edfa2cc6c4f631f30a237fe6c8 c:\boot\cs-CZ\bootmgr.exe.mui
0eac4b3cf928be35e0f73cfe3e43047c c:\boot\cs-CZ\memtest.exe.mui
切换到新的'MongoDB+' TLS/SSL
部署,现在我可以'连接。
我不详细了解他们的架构,但可以在此处找到更多信息:
express-session
在这里: Bringing SSL To Compose MongoDB
在这里: Going SSL With Compose MongoDB+
我知道当你连接时,你需要声明Compose.io
选项,你的连接代码最终看起来像这样:
mongos
该连接字符串以及这些连接选项可以使用var fs = require('fs');
var session = require('express-session');
var MongoStore = require('connect-mongo')(session);
var ca = [fs.readFileSync('./Mongo-Key.pem')];
var url = 'mongodb://MY_MONGO_USER:MY_MONGO_PASS@mongos1.compose.io:12345,mongos2.compose.io:54321/Sessions';
app.use(session({
key : 'SessionKey',
secret : 'CATONTHEKEYBOARD',
cookie : {
path : '/',
httpOnly : true,
maxAge : null
},
store : new MongoStore({
url : url,
mongoOptions : {
mongos : {
ssl : true,
sslValidate : true,
sslCA : ca,
ca : ca,
poolSize : 1,
reconnectTries : 1
}
},
collection : 'sessions',
stringify : false
}, function(result) {
console.log('Connected to sessions db!');
return next();
})
}));
驱动程序。我可以连接并执行所有操作。
但在这种情况下应用它们会产生......没有。它只是挂起。
知道如何生成任何输出以进一步调试吗?
感谢您的帮助!
答案 0 :(得分:0)
好吧,事实证明connect-mongo
在更新的版本中删除了第二个参数(我试图用作回调的参数)。所以问题是我的回调从未被调用过。
调整代码如下有用:
var fs = require('fs');
var session = require('express-session');
var MongoStore = require('connect-mongo')(session);
var ca = [fs.readFileSync('./Mongo-Key.pem')];
var url = 'mongodb://MY_MONGO_USER:MY_MONGO_PASS@mongos1.compose.io:12345,mongos2.compose.io:54321/Sessions';
app.use(session({
key : 'SessionKey',
secret : 'CATONTHEKEYBOARD',
cookie : {
path : '/',
httpOnly : true,
maxAge : null
},
store : new MongoStore({
url : url,
mongoOptions : {
mongos : {
ssl : true,
sslValidate : true,
sslCA : ca,
ca : ca,
poolSize : 1,
reconnectTries : 1
}
},
collection : 'sessions',
stringify : false
}).on('connected', function(result) {
console.log('Connected to sessions db!');
return next();
})
}));