gpt4 book ai didi

javascript - yaml 解析时出错。应为 ,但找到了

转载 作者:行者123 更新时间:2023-11-30 11:37:06 27 4
gpt4 key购买 nike

我正在尝试使用 got-swag(npm 包)测试 swagger api

当我尝试使用 json 模式验证 json 响应时,当单独的 yaml 文件合并为一个 yaml 和 json 文件时,我得到了一个 parseError。起源是 -validate() 行。 validate() 源自 got-swag 包,但它在底层 jsonschema.validate( data, schema ); 依赖性

中失败
 x-tests:
- description: Should return array of ferries
steps:
- get('/api/get/link/ferries')
- equal(res.statusCode, 200)
- ok(res.json.length > 0)
- validate(res.json, $ref: '#/definitions/ferry')

这是导致的错误:

           throw new exports.ParserError('while parsing a block mapping', this.marks.slice(-1)[0], "expected <block end>, but found " + token.id, token.start_mark);
^
while parsing a block mapping
on line 29, column 15
expected <block end>, but found <scalar>
on line 29, column 76
at ParserError.YAMLError [as constructor] (C:\Users\dvbets\Documents\Workspace\Repos\node_modules\yaml-js\lib\errors.js:70:46)
at ParserError.MarkedYAMLError [as constructor] (C:\Users\dvbets\Documents\Workspace\Repos\node_modules\yaml-js\lib\errors.js:90:45)
at new ParserError (C:\Users\dvbets\Documents\Workspace\Repos\node_modules\yaml-js\lib\parser.js:17:48)
at Loader.__dirname.Parser.Parser.parse_block_mapping_key (C:\Users\dvbets\Documents\Workspace\Repos\node_modules\yaml-js\lib\parser.js:433:15)
at Loader.__dirname.Parser.Parser.check_event (C:\Users\dvbets\Documents\Workspace\Repos\node_modules\yaml-js\lib\parser.js:61:48)
at Loader.__dirname.Composer.Composer.compose_mapping_node (C:\Users\dvbets\Documents\Workspace\Repos\node_modules\yaml-js\lib\composer.js:248:20)
at Loader.__dirname.Composer.Composer.compose_node (C:\Users\dvbets\Documents\Workspace\Repos\node_modules\yaml-js\lib\composer.js:160:21)
at Loader.__dirname.Composer.Composer.compose_sequence_node (C:\Users\dvbets\Documents\Workspace\Repos\node_modules\yaml-js\lib\composer.js:216:30)
at Loader.__dirname.Composer.Composer.compose_node (C:\Users\dvbets\Documents\Workspace\Repos\node_modules\yaml-js\lib\composer.js:158:21)
at Loader.__dirname.Composer.Composer.compose_mapping_node (C:\Users\dvbets\Documents\Workspace\Repos\node_modules\yaml-js\lib\composer.js:250:27)

最佳答案

该行需要用引号引起来以转义内部 : 字符:

- "validate(res.json,  $ref: '#/definitions/ferry')"
^

:是YAML中的一个特殊字符,是key:value对的分隔符。在不转义的情况下,该行被解析为键名 validate(res.json, $ref with the value '#/definitions/ferry') 并且解析器阻塞在 ) 在结束引号之后。

相关:How to escape indicator characters (i.e. : or - ) in YAML

关于javascript - yaml 解析时出错。应为 <block end>,但找到了 <scalar>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44023608/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com