我试图按照这里的例子: 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'));
并且还返回undefined。
答案 0 :(得分:0)
原来我只需要这个:
config.file('development',
{file: 'config/development.json'});
答案 1 :(得分:0)
具有类似问题的其他用户应考虑其节点应用程序正在执行的当前工作目录。
在我的情况下(使用Visual Studio Code),使用默认配置启动调试会话是不够的。我需要将cwd
属性添加到我的启动配置中。
我的VS代码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/"
}
]
}
答案 2 :(得分:0)
config.file('development', `${__dirname}/development.json`)
config.file('development', 'config/development.json')
// should work fine