Не удается загрузить файл конфигурации json с помощью nconf
Я пытаюсь следовать примеру здесь: https://www.npmjs.com/package/nconf
Я пытаюсь загрузить конфигурационный json-файл с помощью nconf, но я не могу получить ни одного из конфигов. Я экспортировал это в другой файл, но я также попытался просто запустить этот файл напрямую. Я имею:
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'));
и это также возвращает неопределенное.
2 ответа
Оказывается, мне просто нужно это:
config.file('development',
{file: 'config/development.json'});
- если ваша конфигурационная папка определена где-то еще, кроме корневого каталога проектов, следующее должно работать нормально.
config.file('development', `${__dirname}/development.json`)
- если ваша папка конфигурации находится в корневом каталоге проектов, следующий фрагмент кода должен работать нормально
config.file('development', 'config/development.json')
// should work fine
Другие пользователи с аналогичными проблемами должны учитывать текущий рабочий каталог, в котором выполняется приложение их узла.
В моей ситуации (с использованием кода 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/"
}
]
}