【发布时间】:2020-08-06 03:36:26
【问题描述】:
我有一个在 heroku 上托管的 node.js express api。它通过mongoose连接到mongodb atlas如下
mongoose.connect(
`mongodb+srv://${process.env.MONGO_USER}:${process.env.MONGO_PWD}@${process.env.MONGO_HOST}/${process.env.MONGO_DEFAULT_DB}?retryWrites=true`, {
useNewUrlParser: true,
autoReconnect: true,
keepAlive: 300000,
connectTimeoutMS: 300000,
socketTimeoutMS: 300000
}
)
.then(result => {
console.log('Connected and listening to requests!');
app.listen(process.env.PORT || 3000);
.catch(err => console.log(err));
我想为 Heroku 应用程序使用 Atlas MongoDB Cloud 的白名单,而不是向所有人开放访问权限。 Heroku 没有固定 IP 地址,但可以通过名为 Fixie Socks 的插件实现它们,该插件充当出站流量的代理。
如何使用此插件来使连接正常工作? The documentation 给出了几个如何连接其他服务和数据库的例子,但是对 mongodb 没有帮助。所有示例都使用 FIXIE_SOCKS_HOST ,其中包含 SOCKSV5 代理 URL、用户、通行证和端口,但我不知道如何将它与 mongoose.connect 方法结合使用。
这个问题一直是asked before,但是当使用不同的附加组件(Fixie vs Fixie Socks)时,它不起作用。
【问题讨论】:
-
您找到解决问题的方法了吗?
标签: node.js mongodb heroku mongoose proxy