node.js - 如何从 OpenShift 上的 nodejs 墨盒访问 mongodb 变量?

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

我正在尝试将应用程序原型(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 环境变量。

developers page表示:

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/

相关文章:

windows - 如何在VBS 中使用MsgBox 中的计算机名环境变量?

json - 使用 Express.js 动态更改 JSON 间距

node.js - Nodejs 使用加密解密错误最终 block 长度错误

mongodb - 将图片保存到mongodb

java - IDE 中的类路径

windows - 如何在 CMake (Windows) 中检索用户环境变量

javascript - 使用与 Redis 的快速 session 时 NodeJS 出错

node.js - 使用 gulp-vinyl-zip 创建 zip 文件时出现 TypeError

MongoDB - 无权添加副本集成员,但禁用了 Mongo Auth

node.js - 与 MongoDB 而不是 Redis 一起使用的 Kue 有什么好的替代品?