Как я могу получить свойство элемента из массива с помощью node-config

Не могу получить элемент из массива в файле конфигурации.

{ 
 "crawlerConfigurations":{
        "ClickDelay": 100,
        "TypeDelay": 200,
        "Selectors": {
            "Search": [
                {
                    "SearchInitUrl": "https://www.wukong.com"
                 }
          ]
  }
}

Я пытаюсь получить SearchInitUrl опору первого элемента поиска и использую

config.get(`crawlerConfigurations.Selectors.Search[0].SearchInitUrl`)
config.get(`crawlerConfigurations.Selectors.Search.[0].SearchInitUrl`)

не работал

Надеюсь, кто-то поможет, заранее спасибо.


person WeihanLi    schedule 13.05.2019    source источник


Ответы (1)


Я не рекомендую массивы в конфигурациях, потому что они рассматриваются как единое целое с точки зрения переопределения (например, строки - это массивы символов, и вы не можете переопределить подстроку).

Тем не менее, иногда вам нужно такое поведение. Когда вы это сделаете, следующее должно работать

config.get('crawlerConfigurations.Selectors.Search.0.SearchInitUrl');

Число ноль (0) - это имя переменной, как и другие имена в пути. Не уверен, почему в исходном вопросе в строке было ":", но это была ошибка.

person Loren West    schedule 13.05.2019
comment
(Лорен Уэст является автором node-config). - person Mark Stosberg; 13.05.2019
comment
Было бы хорошо поддержать массив документов на странице Common Usage вики. . - person Mark Stosberg; 13.05.2019
comment
Огромное спасибо. Я использовал node-config как точечную сетевую конфигурацию, мой плохой. - person WeihanLi; 14.05.2019