如何从OpenShift上的nodejs盒式磁带访问mongodb变量?

时间:2015-02-12 22:38:06

标签: node.js mongodb environment-variables openshift openshift-cartridge

我正在尝试将应用程序原型部署到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应用程序中的环境中。

如何在不同的墨盒上访问变量?或者这是配置错误吗?

1 个答案:

答案 0 :(得分:1)

听起来像配置错误。我有一个类似的应用程序和

console.log(util.inspect(process.env)) 

让我清楚地了解了mongodb环境变量。

developers page表示:

  

数据库环境变量属于数据库(如果存在),用于将应用程序连接到数据库。请注意,这些连接仅在内部可用于应用程序;你不能从外部来源连接。

对我来说,这表明nodejs是mongodb安装的外部。我知道可以使用以下命令验证:

rhc app show OPENSHIFT_APP_NAME

这可能会导致问题的根源。正确配置的应用程序将在此列表中包含nodejs和mongodb。