我正试图在openshift上将我的毕业项目放在我的覆盆子pi上几个月,所以我可以将我的pi用于其他目的。
我已经转移了所有nodejs代码。我已经mongodumped并将数据库从PI恢复到openshift。所以除了从数据库连接以外,我已经开始运行了一切,我无法弄清楚我做错了什么。
这就是我在nodejs代码(config / database.js)
中的内容module.exports = {
// 'url': 'mongodb://username:password@myraspberrypiIP:27017/trackmyride'
// ABOVE LINE WORKS - OPENSHIFT CAN CONNECT TO MY LOCAL DATABASE
// ALL LINES BELOW ARE THINGS I TRIED, BUT NODEJS SERVER CAN NEVER START
// 'url': 'mongodb://$OPENSHIFT_MONGODB_DB_HOST:$OPENSHIFT_MONGODB_DB_PORT/'
// 'url': 'mongodb://username:password@OPENSHIFT_MONGODB_DB_HOST:OPENSHIFT_MONGODB_DB_PORT/cruizerserver'
// 'url': 'OPENSHIFT_MONGODB_DB_URL/cruizerserver'
// 'url': 'mongodb://admin:password@127.*.**.***:27017/cruizerserver'
// 'url': OPENSHIFT_MONGODB_DB_URL+'cruizerserver'
'url': process.env.OPENSHIFT_MONGODB_DB_USERNAME + ":"
+ process.env.OPENSHIFT_MONGODB_DB_PASSWORD + "@"
+ process.env.OPENSHIFT_MONGODB_DB_HOST + ':'
+ process.env.OPENSHIFT_MONGODB_DB_PORT + '/'
+ process.env.OPENSHIFT_APP_NAME;
};
(密码/用户名/ *是stackoverflow的占位符)
有没有人知道我做错了什么。 使用第一行(连接到我家的raspberryPI上的数据库)时,服务器和项目工作正常但是当我用其中一个底线替换它时,服务器拒绝启动。即使它们是从openshift的文档中复制粘贴的。 https://blog.openshift.com/getting-started-with-mongodb-on-nodejs-on-openshift/
谢谢, 文森特
答案 0 :(得分:4)
在OpenShift上,您不必自己构建网址。只需从环境变量OPENSHIFT_MONGODB_DB_URL + OPENSHIFT_APP_NAME获取它。
url: process.env.OPENSHIFT_MONGODB_DB_URL + process.env.OPENSHIFT_APP_NAME
组合这两个env变量将形成如下:
mongodb://admin:LUXXXXXXX-YI@XXXX0f534382ecf0d2000095-your_domain.rhcloud.com:52821/your_app_name
答案 1 :(得分:2)
我们可以使用 openshift环境变量来构建连接URL。 实施例。
// default to a 'localhost' configuration:
var connection_string = '127.0.0.1:27017/YOUR_APP_NAME';
// if OPENSHIFT env variables are present, use the available connection info:
if(process.env.OPENSHIFT_MONGODB_DB_PASSWORD){
connection_string = process.env.OPENSHIFT_MONGODB_DB_USERNAME + ":" +
process.env.OPENSHIFT_MONGODB_DB_PASSWORD + "@" +
process.env.OPENSHIFT_MONGODB_DB_HOST + ':' +
process.env.OPENSHIFT_MONGODB_DB_PORT + '/' +
process.env.OPENSHIFT_APP_NAME;
};
//Connect to mongodb using mongoose library
mongoose.connect(connection_string);
};