我connect-mongo
用作 的存储模块express-session
,一切正常,直到我'MongoDB+' TLS/SSL
从 切换到新部署Compose.io
,现在我无法连接。
我不详细了解他们的架构,但可以在这里找到更多信息: Bringing SSL To Compose MongoDB
在这里: 使用 Compose MongoDB+ 使用 SSL
在这里: 一个丢失的密钥以及它是如何破坏 Node.js 的
我确实知道,当您连接时,您需要声明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();
})
}));
该连接字符串与这些连接选项一起使用mongo-native
驱动程序工作。我可以连接并执行所有操作。
但是在这种情况下应用它们会产生......什么都没有。它只是挂起。
知道如何产生任何输出以进一步调试吗?
谢谢你的帮助!