nconf没有从heroku上的文件加载

时间:2014-03-15 19:54:07

标签: node.js heroku

我已经从使用dotcloud切换到了heroku。我正在使用nconf进行配置。我设置它首先从环境变量中获取,如果没有,那么它从config.json文件中获取。在localhost上这很好用。对于我的内部版本号,我将它存储在配置文件中,而不是存储在环境变量中,以便我可以在推送时设置它,然后不必更改环境。

app.coffee

nconf.argv().env().file file: "./config.json"

config.json

{
    "APP_BUILD_NUMBER": "1.0.0"
}

如果我在本地或在dotcloud上运行,如果我这样做,nconf正确传递1.0.0

nconf.get("APP_BUILD_NUMBER")

但是,在heroku上,它返回undefined。如果我在环境变量中设置它,那么它确实有效。我想知道我做错了什么。

2 个答案:

答案 0 :(得分:5)

尝试删除路径的“./”部分:

nconf.argv().env().file file: "config.json"

如果不起作用,请尝试

nconf.argv().env().file file: __dirname + "/config.json"

答案 1 :(得分:1)

我建议运行heroku run bash然后输入Node REPL并尝试多个路径,直到找出不同的内容。进行更改然后等待推送是一个繁琐的调试周期。我怀疑你的问题是在路径上,或者可能没有取消环境变量。