将Node / Mongo部署到Openshift

你好,我正在试图让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创build的:

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

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

我的日志不显示错误,但是,dB显然不是活的。 谁能帮忙?

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

OPENSHIFT_MONGODB_DB_URL给你这种格式:

MongoDB的://pipe理员:password@127.4.99.1:27017 /

和OPENSHIFT_MONGODB_DB_HOST给你这种格式:

ip地址,例如:127.4.99.1

所以你可以使用OPENSHIFT_MONGODB_DB_URL来同时连接和validation

与蒙古,你可以这样做:

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

它看起来像你试图连接到一个名为“ $OPENSHIFT_MONGODB_DB_HOST ”,(不是一个有效的URL)的服务器。

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

 process.env.OPENSHIFT_MONGODB_DB_HOST 

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