我正在尝试将应用程序原型部署到openshift。它与mongodb本地工作在127.0.0.1。我试图在openhift环境中让它尊重process.env.OPENSHIFT_MONGODB_DB_URL
,但在运行时我的nodejs盒式磁带无法访问该变量。
我可以看到它是在我的应用程序的shell环境中设置的。当我rhc ssh
然后export
时,我看到OPENSHIFT_MONGODB_DB_URL=[full_url_with_password]
,这一切看起来都不错。
但是,在我的node.js应用程序中,当我调用process.env.OPENSHIFT_MONGODB_DB_URL
时,它会返回undefined
。
要仔细检查,我在node.js应用程序中做了console.log(util.inspect(process.env))
,我看到的内容与我在appanti的安全shell中看到的不同。没有OPENSHIFT_MONGODB_ *变量存在于我的node.js应用程序中的环境中。
如何在不同的墨盒上访问变量?或者这是配置错误吗?
答案 0 :(得分:1)
听起来像配置错误。我有一个类似的应用程序和
console.log(util.inspect(process.env))
让我清楚地了解了mongodb环境变量。
数据库环境变量属于数据库(如果存在),用于将应用程序连接到数据库。请注意,这些连接仅在内部可用于应用程序;你不能从外部来源连接。
对我来说,这表明nodejs是mongodb安装的外部。我知道可以使用以下命令验证:
rhc app show OPENSHIFT_APP_NAME
这可能会导致问题的根源。正确配置的应用程序将在此列表中包含nodejs和mongodb。