如何在Heroku系统变量中设置主文件夹?

时间:2019-03-13 13:39:34

标签: node.js heroku config system-variable

我正在Heroku dyno上部署一个node.js应用程序,并使用config module,这需要我定义一个NODE_CONFIG_DIR文件夹位置的系统变量config

config文件夹位于项目的根目录。

我尝试使用以下值定义系统变量NODE_CONFIG_DIR,但均失败:

./config
~/config
app/config
~/app/config
./app/config
$HOME/config
$HOME/app/config

我不断收到此错误:

WARNING: No configurations found in configuration directory:app/config

(用上面的任何值替换app/config

我设法设置一个系统变量,但是它的值指向的位置不正确。

在Heroku中使用系统变量时,引用树根的正确方法是什么?

3 个答案:

答案 0 :(得分:1)

基于文档-如果letter-spacing: 1px;文件夹位于应用程序的根目录中,则不需要来指定config env变量。


从节点配置documentation

Node-config读取“ ./config”目录中正在运行的进程(通常是应用程序根)的配置文件。通过将$NODE_CONFIG_DIR环境变量设置为包含配置文件的目录,可以覆盖此设置。也可以在加载$NODE_CONFIG_DIR之前从节点进行设置:

Node-config

process.env["NODE_CONFIG_DIR"] = __dirname + "/configDir/"; const config = require("config"); 可以是根目录中的完整路径,也可以是过程中的相对路径(如果值以$NODE_CONFIG_DIR./开头


您可以使用以上代码从节点代码中进行设置。

答案 1 :(得分:1)

您已经接近:/app是正确的路径。您可以通过运行heroku run bash进行验证。

答案 2 :(得分:0)

那是我的坏事...

两个答案都是正确的,但不能解决我的问题。

问题是我的配置文件名使用小写字母,而NODE_ENV的值是大写字母。