2

我正在尝试遵循此处的示例: 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'));

这也返回未定义。

4

3 回答 3

0

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

在我的情况下(使用 Visual Studio Code),使用默认配置启动调试会话是不够的。我需要将该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/"
        }
    ]
}
于 2018-05-30T21:50:05.753 回答
0
  • 如果您的配置文件夹是在项目根目录以外的其他地方定义的,那么下面应该可以正常工作。
config.file('development', `${__dirname}/development.json`)
  • 如果您的配置文件夹位于项目根目录中,那么以下代码片段应该可以正常工作
   config.file('development', 'config/development.json') 
   // should work fine  
于 2020-08-14T09:26:13.873 回答
0

原来我只需要这个:

  config.file('development', 
    {file: 'config/development.json'});
于 2016-06-29T07:10:04.647 回答