Навигация по файлам yaml с использованием переменных - PullRequest
0 голосов
/ 06 марта 2019

Название плохое, но я постараюсь объяснить это.

Я пытаюсь в значительной степени перемещаться по файлу yaml, как обычно

var doc = yaml.safeLoad(fs.readFileSync('./settings.yml', 'utf8'));
console.log(doc.admin.permissions);

кроме того, что я хочу иметь возможность сделать это:

var adminrolename = "admin1";
console.log(doc.adminrolename.permissions);

Есть ли способ, которым я мог бы сделать это?Я искал вокруг и не могу найти ответ, возможно, я просто искал не ту вещь, так что извините, если у этого есть очевидный ответ

Ответы [ 2 ]

1 голос
/ 06 марта 2019

Это то, что я сделал для доказательства концепции. Помните, что ключи чувствительны к регистру, поэтому doc["admin"] не будет совпадать с doc["Admin"]

Файл Yaml:

doc:
  admin:
    permissions:
      - abc
      - xyz
  admin1:
    permissions:
      - abc1
      - xyz1

Файл JS:

const yaml = require('js-yaml');
const fs = require('fs');
try {
    const config = yaml.safeLoad(fs.readFileSync('test.yml', 'utf8'));
    const doc = config.doc;
    console.log(doc["admin"].permissions);
    console.log(doc["admin1"].permissions);
} catch (e) {
    console.log(e);
}

Результат:

[ 'abc', 'xyz' ]
[ 'abc1', 'xyz1' ]
0 голосов
/ 06 марта 2019

Приносим извинения за неудобства, @Kinaan Khan Sherwani был прав, я пытался, но я испортил файл yaml.

doc[adminrolename].permissions

Вот правильный код:

Я не ставил кавычек вокруг разделов ... лицевые панели .Вот что было в оригинальном YAML:

what the original image was

Это то, на что я изменил YAML, чтобы решить мою проблему:

what i changed the yaml to

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