【问题标题】:How to access mongodb variables from nodejs cartridge on OpenShift?如何从 OpenShift 上的 nodejs 墨盒访问 mongodb 变量?
【发布时间】:2015-02-12 22:38:06
【问题描述】:

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

我可以看到它是在我的应用程序的 shell 环境中设置的。当我执行rhc sshexport 时,我看到了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_* 变量。

如何访问不同墨盒的变量?还是这是配置错误?

【问题讨论】:

  • 看来是墨盒的启动顺序有问题?在应用程序/墨盒的一些停止和启动后,问题就消失了。

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


【解决方案1】:

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

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

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

developers page 表示:

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

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

rhc app show OPENSHIFT_APP_NAME

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多