将Node / Mongo部署到Openshift

时间:2014-05-08 20:18:58

标签: node.js mongodb openshift

您好我试图让Openshift继续使用Node / Mongo服务,这就是它的样子:

 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显然不是实时的。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:4)

如果你的mongodb驱动支持与用户名/密码的连接,那么使用OPENSHIFT_MONGODB_DB_URL而不是OPENSHIFT_MONGODB_DB_HOST

OPENSHIFT_MONGODB_DB_URL为您提供以下格式:

的mongodb://管理员:password@127.4.99.1:27017 /

和OPENSHIFT_MONGODB_DB_HOST为您提供以下格式:

ip addres,例如: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}
);

答案 1 :(得分:3)

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

相反,您可能希望阅读OPENSHIFT_MONGODB_DB_HOST环境变量的值以查找连接信息:

process.env.OPENSHIFT_MONGODB_DB_HOST

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