2013-05-30 67 views
2

我正在尋找一種方法來改變Meteor加載Mongo數據庫的方式。現在,我知道我可以在啓動Meteor(或導出它)時設置一個環境變量,但我希望有一種方法可以在代碼中執行此操作。這樣,我可以根據條件動態連接到不同的實例。有沒有辦法改變代碼中的MONGO_URL?

一個示例測試用例是代碼解析url'testxx.site.com',然後根據'textxx'子域查找一個URL,然後連接到該特定實例。

我已經嘗試在服務器代碼中設置process.env.MONGO_URL,但是當客戶端執行某些操作時,它不會獲取新值。

任何幫助將不勝感激。

+0

只是想把這件事情弄糟 - 仍然試圖找出沒有運氣的事情。 – mkrieger

+0

您是否嘗試過捆綁應用程序,然後直接在node.js中運行?這可以讓你使用MONGO_URL:http://docs.meteor.com/#deploying – booyaa

回答

0

流星在啓動時連接到Mongo(使用this code),因此對process.env.MONGO_URL的任何更改都不會影響數據庫連接。

聽起來好像你正試圖在多個域上運行一個Meteor服務器,並根據客戶端的請求同時連接到多個數據庫。使用傳統的服務器端腳本語言可能會有這種可能,但Meteor無法實現,因爲服務器和數據庫緊密結合在一起,並且服務器在啓動時基本上連接到一個主數據庫。

* .meteor.com託管服務現在正在做類似的工作,將來Meteor的Galaxy商業產品將允許您這樣做 - 通過爲每個子域啓動單獨的Meteor服務器。

相關問題