node.js 的 config.yaml 中 Heroku 环境变量的语法?
Posted
技术标签:
【中文标题】node.js 的 config.yaml 中 Heroku 环境变量的语法?【英文标题】:Syntax for Heroku environment variables in config.yaml for node.js? 【发布时间】:2012-09-24 00:21:42 【问题描述】:我尝试过使用:
db:
uri: process.env.MONGOLAB_URI
但这似乎不起作用。 (编辑:事实上,这只是返回“process.env.MONGOLAB_URI”的字符串)我也试过:
<%= ENV['MONGOLAB_URI'] %>
但我在一篇关于 ruby 应用程序中的 yaml 的文章中看到了这一点(现在找不到链接)。
正确的语法是什么?
【问题讨论】:
【参考方案1】:db:
uri: #process.env.MONGOLAB_URI
学分:https://github.com/vngrs/konfig
【讨论】:
【参考方案2】:我相信 config.yaml 示例适用于特定的 Ruby 驱动程序。对于 Node.js,您希望使用您认为最方便的任何配置方法将 URI(位于 process.env.MONGOLAB_URI
)提供给您选择的 Node 驱动程序。
例如,如果您想使用Node MongoDB Native driver,您可以执行以下操作:
var mongodb = require('mongodb');
mongodb.Db.connect(process.env.MONGOLAB_URI, function (err, db)
// Do something cool with the db
);
【讨论】:
对,将process.env.MONGOLAB_URI
放入node.js 代码时有效,但应使用什么语法将其放入config.yaml
?
如果您指的是 MongoLab add-on help 中记录的 YAML 文件配置技术,那么正如我所提到的,它适用于特定的 Ruby 驱动程序,不适用于 Node.js。问题是您希望将配置从代码中外部化,并可能在所使用的环境上分叉?
我想我不是很清楚。我知道我在问题中使用的语法之一是针对 ruby 而不是针对 node.js,这就是我在问题中这么说的原因。我也知道我可以通过在 node.js 代码中使用 process.env.MONGOLAB_URI
来访问 javascript 代码中的 mongolab_uri 环境变量。问题是,当使用 yaml 文件进行应用程序配置时,您不能单独使用 process.env.MONGOLAB_UI
,因为 yaml 只会返回该字符串,而不会将字符串评估为 javascript 代码。告诉 yaml 它应该将字符串评估为 javscript 的语法是什么?
我相信这取决于您使用的 YAML 解析器。你在用js-yaml吗?通过快速查看 README.md 或访问他们的 online demo,我没有看到明显的解决方案。不过,退后一步,YAML 并不是在 Node.js 中处理配置的常用方法。您可能想尝试techniques more commonly used with Node 之一。我自己使用nconf。
nconf 看起来真的很可爱。它自动处理和合并环境变量的方式可能会解决我的问题。我会检查一下。谢谢!很抱歉造成混乱以上是关于node.js 的 config.yaml 中 Heroku 环境变量的语法?的主要内容,如果未能解决你的问题,请参考以下文章