【问题标题】:How to connect MongoHQ to AppFog mongodb service如何将 MongoHQ 连接到 AppFog mongodb 服务
【发布时间】:2013-09-06 10:01:25
【问题描述】:

带有 express.js 应用程序的 js,我将其部署到 appfog,但我无法或者我不知道如何将位于 MongoHQ 上的 mongodb 集合连接到我的 AppFog mongodb 服务。

MongoHQ 为您提供一个 mongo URI,例如:

mongodb://<user>:<password>@<hostname>:<port>/<databasename>

AppFog mongodb 服务为您提供了一个名为 VCAP_SERVICE 的环境变量,其中包含将您的应用程序连接到 mongodb 的所有 conf 变量,但另一方面,我的 mongodb 集合位于 MongoHQ,我不知道如何指定此 MongoURI我在 AppFog 上的 mongodb 服务。

希望你能理解我,问候。

【问题讨论】:

    标签: node.js mongodb express appfog


    【解决方案1】:

    如果我理解正确,可能有两种方法可以解决您的问题。首先,您可以启用 MongoHQ 插件,AppFog 将为您创建一个 MongoHQ 沙箱。您可以通过以下方式获取 MongoHQ URL:

    if(process.env.VCAP_SERVICES){
        var env = JSON.parse(process.env.VCAP_SERVICES);
        var mongo = env['MONGOHQ_URL'];
    }
    

    既然你说你已经有了 mongodb 集合,你可以通过 MongoHQ Web UI 将你的原始集合克隆到 AppFog 提供的集合。

    另一个解决方案是不用担心 AppFog 中的 MongoHQ 插件。直接连接到 MongoHQ(我用的是 mongoose,但是原生驱动应该做类似的事情):

    mongoose.connect(YOUR_MONGOHQ_URL);
    

    实际上我最近遇到了类似的问题,我使用这种方法成功地将我的 nodejs+express 应用程序部署到 Heroku。我没有在 Heroku 中启用 mongohq 插件,因为我已经有了一个 MongoDB 沙箱。

    更新 我最近在 Heroku 中部署了几个应用程序,使用 mongodb 本机驱动程序和 monk 连接到 MongoHQ 中的沙箱。代码如下:

    var monk=require('monk');
    var db=monk("mongodb://username:pwd@sth.mongohq.com:port/YOURDB");
    

    【讨论】:

    • 我遇到了类似的情况。连接工作正常,但在 mongodb.authenticate(...) 调用中失败
    • @AksharRoop 我在答案中添加了一些更新。有帮助吗?
    猜你喜欢
    • 2016-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-26
    • 2011-04-11
    • 2022-01-07
    相关资源
    最近更新 更多