2

我正在尝试将应用程序原型部署到 openshift。它在本地与 127.0.0.1 的 mongodb 一起工作。我试图让它process.env.OPENSHIFT_MONGODB_DB_URL在 openshift 环境中得到尊重,但我的 nodejs 墨盒在运行时无法访问该变量。

我可以看到它是在我的应用程序的 shell 环境中设置的。当我这样做时rhc sshexport我看到OPENSHIFT_MONGODB_DB_URL=[full_url_with_password]了,一切看起来都很好。

但是,当我在我的 node.js 应用程序中调用process.env.OPENSHIFT_MONGODB_DB_URL它时,会返回undefined.

为了仔细检查,我console.log(util.inspect(process.env))在我的 node.js 应用程序中做了一个,我看到的与我在应用程序的安全 shell 中看到的不同。在暴露给我的 node.js 应用程序的环境中没有 OPENSHIFT_MONGODB_* 变量。

如何访问不同墨盒之间的变量?或者这是一个配置错误?

4

1 回答 1

1

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

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

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

开发人员页面表明:

数据库环境变量与数据库相关(如果存在),用于将应用程序连接到数据库。请注意,这些连接仅对内部应用程序可用;您无法从外部源连接。

对我来说,这表明 nodejs 在 mongodb 安装之外。我有一个想法,可以使用以下命令进行验证:

rhc app show OPENSHIFT_APP_NAME

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

于 2015-02-13T05:13:37.360 回答