我正在尝试将应用程序原型(prototype)部署到 openshift。它在 127.0.0.1 本地与 mongodb 一起工作。我试图让它在 openshift 环境中遵守 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))
,我看到的与我在我的应用程序中看到的不同应用程序的安全外壳。在我的 node.js 应用程序公开的环境中没有 OPENSHIFT_MONGODB_* 变量。
如何跨不同的墨盒访问变量?或者这是一个配置错误?
最佳答案
听起来像是配置错误。我有一个类似的应用程序和
console.log(util.inspect(process.env))
让我清楚地了解 mongodb 环境变量。
Database environment variables pertain to a database, if one exists, and are used to connect an application to a database. Note that these connections are only available to an application internally; you cannot connect from an external source.
对我来说,这表明 nodejs 在 mongodb 安装之外。我有一个想法,它可以用命令来验证:
rhc app show OPENSHIFT_APP_NAME
这可能会导致问题的根源。正确配置的应用程序将在此列表中包含 nodejs 和 mongodb。
关于node.js - 如何从 OpenShift 上的 nodejs 墨盒访问 mongodb 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28489230/