您好我试图让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显然不是实时的。有人可以帮忙吗?
答案 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