Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

351
Vistas
ExpressJs: obtener una pantalla en blanco de la ruta Swagger

Estoy usando swagger-ui-express con swagger-jsdoc en mi proyecto Express.js. He implementado todo de acuerdo con algunos tutoriales y documentos oficiales. Aún así, cuando ingreso la URL de Swagger, ¡obtengo una pantalla blanca en blanco!

Mi archivo server.js :

 const express = require('express'); const cookieParser = require('cookie-parser') const cors = require('cors'); const methodOverride = require('method-override'); const bodyParser = require('body-parser'); const connectMongoDB = require('./config/mongo-db'); const swaggerUi = require('swagger-ui-express'); const swaggerJSDoc = require('swagger-jsdoc'); const Middleware = require('./utils/middlewares'); const menuRoutes = require('./routes/api/menus'); const userRoutes = require('./routes/api/user'); require('dotenv').config(); const app = express() app.use(cors()); app.use(function(req, res, next) { //allow cross origin requests res.setHeader("Access-Control-Allow-Methods", "POST, PUT, OPTIONS, DELETE, GET"); res.header("Access-Control-Allow-Origin", "http://127.0.0.1:3000"); // frontend res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); res.header("Access-Control-Allow-Credentials", true); next(); }); app.use(bodyParser.json()); app.use(cookieParser()); app.use(methodOverride('_method')); app.use(express.json({ extended: false })); const port = process.env.PORT || 3001; // back-end PORT is 3001 connectMongoDB(); app.use(Middleware.authJWTMiddleware); app.use(Middleware.logVisit); app.use(cors({ origin: true, credentials: true })); app.get('/', (req, res) => res.send('Hello world!')); app.use('/api/menus', menuRoutes); app.use('/api/users', userRoutes, function (req, res) { res.sendStatus(401) }); // Swagger configurations const swaggerOptions = { swaggerDefinition: { openapi: '3.1.0', info: { title: 'Restaurant Site', version: '1.0.0', description: "This is a simple CRUD API application made with Express and documented with Swagger", license: 'none', contact: { name: "John Doe", email: "john@mail.com" }, servers: [ { url: 'http://127.0.0.1:3001', }, ], }, }, apis: ["/routes/api/menus.js",], }; const specs = swaggerJSDoc(swaggerOptions); app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(specs, {explorer: true})); app.listen(port, () => console.log(`Server is listening on port ${port}`));

Todavía no he implementado ningún modelo de swagger, pero aún así se supone que debo obtener una página web navegable de swagger. ¿Por qué no lo estoy consiguiendo?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

solo necesita agregarles cosas de swagger antes del middleware de autenticación

 const express = require("express"); ... const app = express(); ... app.use(SwaggerStuff); app.use(whatEvaChecksAuthStuff);
about 4 years ago · Juan Pablo Isaza Denunciar

0

El middleware de autenticación bloqueaba las URL que contenían la ruta /api-docs/swagger... . Entonces, tuve que poner estas rutas en la lista de exclusión y ahora está funcionando.

pestaña de red de dev. instrumentos

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda