gpt4 book ai didi

node.js - swagger ui 在 express nodejs 中显示原始 html 代码

转载 作者:行者123 更新时间:2023-12-05 02:12:02 25 4
gpt4 key购买 nike

我在 nodejs express app 中使用 swagger。正如预期的那样,它应该给出 ui 作为响应,但我正在获取 html 代码。我不知道这里出了什么问题。这是我的招摇代码

var swaggerUi = require('swagger-ui-express');
// swagger definition
var swaggerDefinition = {
info: {
title: 'expense manager api',
version: '3.0.0',
description: 'api docs for all apis',
},
host: 'localhost:8080',
basePath: '/',
};
// options for the swagger docs
var options = {
// import swaggerDefinitions
swaggerDefinition: swaggerDefinition,
// path to the API docs
apis: ['./server/routes/admin_routes/*.js','./server/routes/user_routes/*.js'],// pass all in array
};
var swaggerSpec = swaggerJSDoc(options);
app.get('/swagger.json', function(req, res) { res.setHeader('Content-Type', 'application/json'); res.send(swaggerSpec); });
app.get('/api-docs',swaggerUi.serve,swaggerUi.setup(swaggerSpec));

但是在转到 localhost:8080/api-docs/时它会提供原始 html 代码。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Swagger UI</title>
<link rel="stylesheet" type="text/css" href="./swagger-ui.css" >
<link rel="icon" type="image/png" href="./favicon-32x32.png" sizes="32x32" /><link rel="icon" type="image/png" href="./favicon-16x16.png" sizes="16x16" />

<style>
html
{
box-sizing: border-box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
*,
*:before,
*:after
{
box-sizing: inherit;
}

body {
margin:0;
background: #fafafa;
}
</style>
</head>

<body>

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="position:absolute;width:0;height:0">
<defs>
<symbol viewBox="0 0 20 20" id="unlocked">

我不知道这里出了什么问题。任何帮助都会很棒。提前致谢

最佳答案

发生这种情况是因为您的 express 配置为始终以内容类型应用程序/json 进行响应。将 Swagger 配置放在其他设置之前,以便您的 express 以文本/html 响应请求

关于node.js - swagger ui 在 express nodejs 中显示原始 html 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56586694/

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