如何在 Heroku 系统变量中设置主文件夹?
How do I set home folder in Heroku 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 中使用系统变量时,引用树根的正确方法是什么?
根据文档 - 如果 config
文件夹位于应用程序的根目录中,您 不需要 指定 $NODE_CONFIG_DIR
环境变量。
来自节点配置 documentation:
Node-config 读取 运行 进程的“./config”目录中的配置文件,通常是应用程序根目录。这可以通过将 $NODE_CONFIG_DIR
环境变量设置为包含您的配置文件的目录来覆盖。也可以在加载之前从节点设置 Node-config
:
process.env["NODE_CONFIG_DIR"] = __dirname + "/configDir/";
const config = require("config");
$NODE_CONFIG_DIR
可以是根目录的完整路径,如果值以 ./
或 ../.
开头,则可以是进程的相对路径
您可以使用上面的代码从您的节点代码中设置它。
您很接近:/app
是正确的路径。您可以通过 运行 heroku run bash
.
来验证
是我的错...
两个答案都正确,但没有解决我的问题。
问题是我的配置文件名使用小写字母,而 NODE_ENV
值是大写字母。
我正在 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 中使用系统变量时,引用树根的正确方法是什么?
根据文档 - 如果 config
文件夹位于应用程序的根目录中,您 不需要 指定 $NODE_CONFIG_DIR
环境变量。
来自节点配置 documentation:
Node-config 读取 运行 进程的“./config”目录中的配置文件,通常是应用程序根目录。这可以通过将 $NODE_CONFIG_DIR
环境变量设置为包含您的配置文件的目录来覆盖。也可以在加载之前从节点设置 Node-config
:
process.env["NODE_CONFIG_DIR"] = __dirname + "/configDir/";
const config = require("config");
$NODE_CONFIG_DIR
可以是根目录的完整路径,如果值以 ./
或 ../.
您可以使用上面的代码从您的节点代码中设置它。
您很接近:/app
是正确的路径。您可以通过 运行 heroku run bash
.
是我的错...
两个答案都正确,但没有解决我的问题。
问题是我的配置文件名使用小写字母,而 NODE_ENV
值是大写字母。