【问题标题】:Deploying Node/Mongo to Openshift将 Node/Mongo 部署到 Openshift
【发布时间】:2014-05-08 20:18:58
【问题描述】:

您好,我正在尝试让 Node/Mongo 服务在 Openshift 上运行,如下所示:

 var db = new mongodb.Db('myServiceName',
   new mongodb.Server('mongodb://$OPENSHIFT_MONGODB_DB_HOST','$OPENSHIFT_MONGODB_DB_PORT', {}));
 db.open(function (err, db_p) {
   if (err) { throw err; }
   db.authenticate('$USER', '$PASS', function (err, replies) {
     if (err) { throw err; }
     // should be connected and authenticated.
     // ...

该应用是使用 rhc 创建的:

$ rhc create-app myServiceName nodejs-0.10 mongodb-2.4

控制台显示应用程序已启动并正在运行,在 cURL 上的响应为 503

我的日志没有显示错误,但是,dB 显然不是实时的。有人可以帮忙吗?

【问题讨论】:

    标签: node.js mongodb openshift


    【解决方案1】:

    如果您的 mongodb 驱动程序支持使用用户名/密码进行连接,则使用 OPENSHIFT_MONGODB_DB_URL 而不是 OPENSHIFT_MONGODB_DB_HOST

    OPENSHIFT_MONGODB_DB_URL 为您提供这种格式:

    mongodb://admin:password@127.4.99.1:27017/

    OPENSHIFT_MONGODB_DB_HOST 为您提供这种格式:

    IP 地址,例如:127.4.99.1

    因此您可以同时使用 OPENSHIFT_MONGODB_DB_URL 进行连接和身份验证

    使用 mongoskin,您可以这样做:

    var db = require('mongoskin').db(process.env.OPENSHIFT_MONGODB_DB_URL + 'dbname'+ '?auto_reconnect=true',
        {safe: true, strict: false}
    );
    

    【讨论】:

      【解决方案2】:

      您似乎正在尝试连接到名为“$OPENSHIFT_MONGODB_DB_HOST”的服务器(不是有效的 URL)。

      相反,您可能需要读取 OPENSHIFT_MONGODB_DB_HOST 环境变量的值来查找您的连接信息:

      process.env.OPENSHIFT_MONGODB_DB_HOST
      

      我在这里有一些补充说明:https://www.openshift.com/blogs/getting-started-with-mongodb-on-nodejs-on-openshift

      【讨论】:

      • 附加说明链接非常有用。非常感谢。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-30
      • 2015-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-18
      相关资源
      最近更新 更多