我正在尝试将在我的树莓派上运行了几个月的毕业项目放到 openshift 上,这样我就可以将我的 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/
谢谢, 文森特
最佳答案
在 OpenShift 上,您不必自己构建 URL。只需从环境变量 OPENSHIFT_MONGODB_DB_URL + OPENSHIFT_APP_NAME 获取即可。
url: process.env.OPENSHIFT_MONGODB_DB_URL + process.env.OPENSHIFT_APP_NAME
组合这 2 个环境变量将形成如下所示的内容:
mongodb://admin:LUXXXXXXX-YI@XXXX0f534382ecf0d2000095-your_domain.rhcloud.com:52821/your_app_name
关于node.js - Openshift mongodb 连接 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33404703/