gpt4 book ai didi

node.js - 如何使用 swagger-ui-express 加载 YAML 文件?

转载 作者:行者123 更新时间:2023-12-02 19:13:08 24 4
gpt4 key购买 nike

我有以下问题 - 我正在使用 swagger-ui-express,当我不在开发环境中时,我正面临 swagger 的解析问题;

{"message":"Parsing swagger document failed. SyntaxError: Unexpected token :"}

这是在我的 swagger.js 中:

const {developmentEnv} = config;
const swaggerFile = developmentEnv
? jsYaml.safeLoad(fs.readFileSync('./src/api/swagger.yml'))
: require('../../api/swagger.yml');

我认为,问题出在 require 上。 Yaml 似乎是这里的问题。有人可以帮我解决这个问题吗?

最佳答案

这里的问题是需要 .yaml 文件。

文档清楚地说,

To load your swagger specification yaml file you need to use a moduleable to convert yaml to json; for instance yamljs.

这是链接 https://www.npmjs.com/package/swagger-ui-express#load-swagger-from-yaml-file

例如,试试这个,它有效:

const express = require('express');
const path = require('path');
const pathToSwaggerUi = require('swagger-ui-dist').absolutePath();
const YAML = require('yamljs');

const swaggerDocument = YAML.load('swagger-config.yaml');
console.log(swaggerDocument);

const swaggerJsonDocument = require('./swagger.json');
console.log(swaggerJsonDocument);

const app = express();
app.use(express.static(pathToSwaggerUi))
app.use(express.json());
app.use(express.static(path.join(__dirname, '../views')));

app.get('/', (req, res) => {
res.send(`Hello World!`);
});
app.listen(2000, console.log(`App Listening to port 2000`));

在您的情况下,您可以通过导入模块 yamljs 编写如下代码:

首先,npm install yamljs

   const swaggerFile = developmentEnv ? YAML.load('swagger-config.yaml') : require('./swagger.json');

关于node.js - 如何使用 swagger-ui-express 加载 YAML 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64008830/

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