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

标签 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 中使用系统变量时引用树根的正确方法是什么?

最佳答案

基于文档 - 如果 config 文件夹位于应用程序的根目录中,您不需要指定 $NODE_CONFIG_DIR env 变量。

<小时/>

来自 Node 配置 documentation :

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

process.env["NODE_CONFIG_DIR"] = __dirname + "/configDir/";
const config = require("config");

$NODE_CONFIG_DIR 可以是根目录的完整路径,如果值以 ./../. 开头,则可以是进程的相对路径

<小时/>

您可以使用上面的代码从您的 Node 代码中设置它。

关于node.js - 如何在 Heroku 系统变量中设置主文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55143267/

相关文章:

ruby-on-rails - 为什么 Travis CI 会编辑我的文件?

ruby-on-rails - 使用 Procfile 开始在 Heroku 上使用 Rails

clojure - 在 clojure 中使用 yogthos/config 时,配置文件之间共享环境变量?

android - 方向改变时手势清除

node.js - Sails+Waterline 中的嵌套数据查询

node.js - Route.all() 需要回调函数,但得到一个 [object String])=> 然后显示 404 错误

SSL 证书问题 GoDaddy 域、Heroku 服务器托管、Cloudflare SSL

nuxt.js - 如何在 Nuxt 配置中设置 .env 文件路径?

node.js - Angular 5 和 WordPress

javascript - Node.js 错误抛出被称为不好的做法,但对于 TDD 来说是必不可少的