我正在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中使用系统变量时,引用树根的正确方法是什么?
答案 0 :(得分:1)
基于文档-如果letter-spacing: 1px;
文件夹位于应用程序的根目录中,则不需要来指定config
env变量。
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
的值是大写字母。