首页 > 解决方案 > Swagger 无法解析 YAML:“SyntaxError: Unexpected token :”

问题描述

我尝试遵循本指南:https ://blog.cloudboost.io/adding-swagger-to-existing-node-js-project-92a6624b855b 。我将此行更改为使用 YAML:

swaggerDocument = require('./swagger.yml');

Swagger 编辑器中的示例不起作用。http://editor.swagger.io/

tags:
  - name: "pet"
    description: "Everything about your Pets"

给出了这个错误:

  - name: "pet"                
        ^                      

SyntaxError: Unexpected token :

我试图改变缩进,但它没有帮助。我查看了规范,但它说没关系:https ://yaml.org/spec/1.2/spec.html#id2761803

标签: node.jsyamlswagger

解决方案


我不得不把它改成

var swaggerUi = require('swagger-ui-express')
var fs = require('fs')
var jsyaml = require('js-yaml');
var spec = fs.readFileSync('swagger.yml', 'utf8');
var swaggerDocument = jsyaml.safeLoad(spec);

并移动app/swagger.yml到项目根目录。fs.readFileSync()无法理解./swagger.yml的方式require()


推荐阅读