无法使用 nconf 加载配置 json 文件

Can't load configuration json file using nconf

我正在尝试按照此处的示例进行操作: https://www.npmjs.com/package/nconf

我想做的是使用 nconf 加载配置 json 文件,但我似乎无法实际检索任何配置。我已经将它导出到另一个文件,但我也直接尝试 运行 这个文件。我有:

var config = require('nconf');
//priority order
//1. specific overrides 
config.overrides({
  'always': 'be this value'
});

//2. process.argv
//3. process.env
config.argv().env();

config.file('development', 'development.json');
console.log(config.get('nodeServer'))

module.exports = config;

但输出始终未定义。我的 json 是这样定义的:

{
  "nodeServer": "http://localhost:8090",
  "port": 8090
}

并且它与 config.js 在同一目录中。知道为什么会这样吗?

还要注意,在我的主要server.js我有:

var config     = require('./config/config');
console.log(config.get('port'));

而且 returns 未定义。

原来我只需要这个:

  config.file('development', 
    {file: 'config/development.json'});

其他有类似问题的用户应该考虑他们的节点应用程序正在执行的当前工作目录。

在我的情况下(使用 Visual Studio 代码),使用默认配置启动调试会话是不够的。我需要将 cwd 属性 添加到我的启动配置中。

我的 VS Code launch.config 现在看起来像:

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "Launch Program",
            "program": "${workspaceFolder}\dist\index.js",
            "preLaunchTask": "tsc: build - tsconfig.json",
            "outFiles": [
                "${workspaceFolder}/dist/**/*.js"
            ],
            "cwd": "${workspaceFolder}/dist/"
        }
    ]
}
  • 如果您的配置文件夹定义在除项目根目录以外的其他地方,则以下内容应该可以正常工作。
config.file('development', `${__dirname}/development.json`)
  • 如果您的配置文件夹在项目根目录中,那么下面的代码片段应该可以正常工作
   config.file('development', 'config/development.json') 
   // should work fine