2017-02-14 94 views
0

我有一個在Atlas MongoDB雲集羣上託管的mongodb數據庫。我目前正在訪問該數據庫在我的Node.js應用程序中使用貓鼬:使用貓鼬和Fixie連接到mongodb(Heroku附加組件)

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

因爲MongoDB的圖集雲有一個白名單,以及Heroku的不提供可能獲得一個固定的IP地址,我的申請,我使用Fixie add-on。基本上Fixie充當出站流量的代理。

這樣,我可以通過HTTP請求資源,這些資源通過Fixie提供的固定IP地址進行隧道傳輸。但是我需要的是使用Fixie的代理連接到Atlas Cloud集羣,以便從數據庫中檢索和修改數據。

可以使用貓鼬完成嗎?

mongoose.connect函數接受option parameter,但我找不到有關通過代理建立連接的任何選項。

回答

1

剛從Fixie的團隊回覆:

Fixie是一個HTTP/HTTPS代理,所以不會對低級別的TCP連接的工作就像你需要爲你的MongoDB連接

當我問及使用SOCKS這種情況的可能性,他們的回答是:

它看起來像貓鼬本身並不支持SOCKS代理,並且不接受自定義套接字(這是MySQL和Postgres的節點數據庫驅動程序如何支持它)。

很明顯,在我的情況下,無法通過Fixie提供的代理解決方案(Heroku附加組件)使用貓鼬與MongoDB Atlas羣集建立連接。

+1

我處於相同的情況(Heroku + Node/Express + Mongoose + MongoDB Atlas)。我知道的兩個當前選項是1)允許MongoDB Atlas接受來自「0.0.0.0/0」(所有IP地址)的流量,或者2)獲得具有靜態IP選項的Heroku私人空間(需要它們企業版,這個傳聞已經開始在1萬美元/月以上)。它看起來像Mongoose的'node-mongodb-native/connection'驅動程序是它需要接受自定義套接字連接的地方。 – Pete