使用变量浏览yaml文件

时间:2019-03-06 07:05:28

标签: javascript node.js yaml

标题有点不好,但是我会尽力解释。

我想做的是像平常一样浏览yaml文件

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

除了我希望能够做到这一点:

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

有没有办法做到这一点?我一直在四处张望,似乎找不到答案,我可能只是在搜索错误的内容,如果有明显的答案,对不起

2 个答案:

答案 0 :(得分:1)

这就是我为概念验证所做的。请记住,键区分大小写,因此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' ]

答案 1 :(得分:0)

对于给您带来的不便,我们深表歉意,@ Kinaan Khan Sherwani是对的,我确实尝试过,但是我弄乱了Yaml文件。

doc[adminrolename].permissions

那是正确的代码

我没有在各节附近加引号... facepalms 。这就是原始的YAML:

what the original image was

这是我将YAML更改为解决我的问题的方法:

what i changed the yaml to