我正在尝试使用Node. js/Typescript和Mongoose连接到AWS DocumentDB。我有一个EC2示例设置为SSL隧道,效果很好。我可以使用Studio3T和mongo-cli在本地连接到DocumentDB。此命令的工作方式为mongo --sslAllowInvalidHostnames --ssl --sslCAFile rds-combined-ca-bundle.pem --username <username> --password <password>
但是如果我尝试用Mongoose连接到同一个数据库,它就失败了。这是我的代码和错误:
const options = {
dbName: "prodDB",
user: connectionData.username,
pass: connectionData.password,
tls: true,
tlsCAFile: "../rds-combined-ca-bundle.pem",
tlsAllowInvalidHostNames: true,
};
try {
await connect("mongodb://localhost:27017", options);
} catch (error) {
console.log(error);
}
MongooseServerSelectionError: connect EHOSTUNREACH imagine-ip-address-here:27017
reason: TopologyDescription {
type: 'ReplicaSetNoPrimary',
servers: Map(1) {
'censored:27017' => [ServerDescription]
},
stale: false,
compatible: true,
heartbeatFrequencyMS: 10000,
localThresholdMS: 15,
setName: 'rs0',
commonWireVersion: 7,
logicalSessionTimeoutMinutes: undefined
}
在这一点上,我已经尝试了几乎任何可能的配置 Mongoose 和我越来越绝望。任何帮助是赞赏
1条答案
按热度按时间ykejflvf1#
这似乎是mongoose版本〉= 6的问题。将Mongoose降级到版本5.13.8没有问题。Mongoose开发者显然意识到了这个问题:https://github.com/Automattic/mongoose/issues/11105