Как прочитать конфигурационную пару ключ / значение из файла в Go? - PullRequest
0 голосов
/ 11 мая 2019

У меня есть приложение с низкой задержкой в ​​Node.js, из которого я кодирую новую базовую линию в Go.

Приложение в узле использует config и некоторые пары ключ / значение.

Вconfig / index.js

var config = {};
config.app = {
    port:9000
};
config.log= {
    level:"error"
}
module.exports=config;

И еще один файл config / key_values.js, который содержит пару ключ / значение и обновляется каждые несколько минут.

module.exports.key_values= {
"key1":"value1",
"key2":"value2",
}

И чтобы прочитать это, я простоиспользуйте приведенный ниже код.

let config = require('./config/index');
let keys_vals = require('./config/key_values.js');

console.log('port', config.app.port); //port 9000
console.log('key1 data -->', keys_vals.key_values['key1']); //key1 data --> value1 

Как я могу добиться того же самого на ходу.Я проверил Gonfig для реализации конфигурации и построения конструкций.

Каким должен быть лучший / лучший способ достижения тех же функций, что и в Node?

1 Ответ

0 голосов
/ 13 мая 2019

OK. Итак, вот что я сделал на данный момент. config / index.js теперь является config / config.json с содержимым

{
    "app":{"port":9000},
    "log":{"level":"error"}
}

и config / key_values.js - это config / key_values.json

{
    "key1":"value1",
    "key2":"value2"
}

И чтобы прочитать это значение, я просто читаю файл как []byte и передаю его в function GetBytes библиотеки gjson

Итак, окончательный код выглядит следующим образом:

    configFile, err := os.Open("config/config.json")
    byteValue, _ := ioutil.ReadAll(configFile)
    result := gjson.GetBytes(byteValue, "app.port")
    fmt.Println(result) //prints 9000

И то же самое для файла значений ключей.

    configFile, err := os.Open("config/key_values.json")
    byteValue, _ := ioutil.ReadAll(configFile)
    result := gjson.GetBytes(byteValue, "key1")
    fmt.Println(result) //prints value1

Также попытался использовать struct перед синтаксическим анализом конфигурации, как описано здесь . Но, похоже, я искал эту библиотеку gjson.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...