我目前正在编写一个解析YAML文件的Node.js应用程序。在某些情况下,我需要能够检索与值对应的行号。例如,如果是YAML,则 person: username: jsmith password: hunter2
可能要显示消息“第3行错误:密码错误”。
显然,这是一个琐碎的示例,但重点是YAML本身没有错。
我一直在使用yamljs,并且能够通过Object.defineProperty
方法将行号直接添加到对象中,但这不适用于字符串,因此,如果我们具有以下YAML, passwords: - aG00dP@ssw0Rd - hunter2
我将无法为“ hunter2”。
我的一些想法:
{ lineNumber, value }
对象中。在我看来,这很笨拙,因为我必须呼吁.value
一切。我真的希望行号不影响作用在对象上的任何下游代码。我有没有想过的另一种方式?我提到的任何方法实际上可行,而我做错了吗?
对于任何有兴趣的人,我最终将行号存储在数组/对象上,并将其放在字符串上。这不是理想的,但是尝试以其他方式解决它的成本超过了收益。另外,无论如何,我的用例可能会看到更多的数组/对象。
我在这里分叉了yamljs存储库:https : //github.com/pumlhorse/yaml.js
编辑:我碰到另一个提到添加属性的问题,String
并且意识到这是我的问题的解决方案。我修改了上面的存储库以返回String对象,而不是原始对象,并且提供了我需要的功能。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句