Swagger не может проанализировать YAML: «Ошибка синтаксиса: неожиданный токен:» - PullRequest
0 голосов
/ 08 ноября 2019

Я пытался следовать этому руководству: 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

1 Ответ

1 голос
/ 08 ноября 2019

Мне пришлось изменить его на

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() понимает.

...