使用mongoose和Fixie(Heroku附加组件)连接到mongodb

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用mongoose和Fixie(Heroku附加组件)连接到mongodb相关的知识,希望对你有一定的参考价值。

我有一个托管在Atlas MongoDB云集群上的mongodb数据库。我正在使用mongoose在我的node.js应用程序中访问数据库:

mongoose.connect("mongodb://user:pw@cluster0-shard-00-00-***.mongodb.net:***,cluster0-shard-00-01-***.mongodb.net:***,cluster0-shard-00-02-***.mongodb.net:***/admin?ssl=true&replicaSet=Cluster0-shard-0&authSource=admin");

因为Atlas MongoDB Cloud有一个白名单,而Heroku不能为我的应用程序获取固定的IP地址,我使用的是Fixie add-on。基本上,Fixie充当出站流量的代理。

这样,我可以通过HTTP请求资源,这些资源通过Fixie提供的固定IP地址进行隧道传输。但我需要的是使用Fixie的代理连接到Atlas Cloud集群,以便从数据库中检索和修改数据。

可以用猫鼬做吗?

mongoose.connect函数接受option parameter,但我找不到任何关于通过代理建立连接的选项。

答案

刚刚得到了Fixie团队的回复:

Fixie是一个http / https代理,因此它不适用于您需要mongodb连接的低级TCP连接

当我询问在这种情况下使用SOCKS的可能性时,他们回答说:

看起来mongoose本身不支持socks代理,它不接受自定义套接字(这是mysql和Postgres的Node数据库驱动程序支持它的方式)。

显然,就我而言,没有办法通过Fixie(Heroku Add-on)提供的代理解决方案使用mongoose与MongoDB Atlas集群建立连接。

以上是关于使用mongoose和Fixie(Heroku附加组件)连接到mongodb的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Fixie Socks(Heroku 插件)通过 mongoose 连接到 mongodb

Heroku 替代方案

Heroku 上 Parse 服务器的静态 IP

在 Heroku 中使用静态 IP 来托管 Discord 机器人

如何在 Mongoose 上将 MongoDB 连接到 Heroku?

Heroku 上的 Node.js Express 应用程序不会使用 Mongoose 连接到 MongoLab 数据库