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

241
Vistas
Express devuelve "no encontrado" de forma intermitente

He estado trabajando con Express durante años, y estoy un poco oxidado en el lado mecanografiado, sin embargo... ¡Creo que me he quedado ciego! Es la primera vez que me encuentro con esto, así que debo estar haciendo algo mal...

Mi problema es este:

  • Tengo un punto final llamado "/status".
  • Cuando lo llamo, a veces regresa OK;
  • Y otras veces devolverá un 404 Not Found.
  • Este es el MISMO punto final que hace esto de manera intermitente.

Aquí está el código de mi aplicación express:

 import bodyParer from "body-parser"; import methodOverride from "method-override"; import helmet from "helmet"; import fileUpload from "express-fileupload"; import cors from "cors"; import { errors } from "celebrate"; import { expressRouter } from "./routes"; import config from "../config/config"; import { ErrorHandlers } from "../middleware"; const expressApp = express(); expressApp.use(bodyParer.json()); expressApp.use(methodOverride()); expressApp.use(helmet()); expressApp.use(fileUpload()); expressApp.use(cors()); expressApp.use(errors()); expressApp.use(config.api.v1Prefix, expressRouter); const errorHandlers = new ErrorHandlers(); expressApp.use(errorHandlers.notFound); expressApp.use(errorHandlers.handler); export { expressApp };

Así es como se ve el enrutador:

 // import user from "../routes/user"; const expressRouter = Router(); expressRouter.get("/status", (req, res) => res.send("OK")); // user(expressRouter); // TODO: finish this off when above '/status' works... export { expressRouter };

También sospecho de los controladores de errores que tenemos, y así es como se ven:

 import { inversifyContainer } from "../config/inversify_config"; import { TYPES } from "../config/inversify_types"; import { Logger } from "../loaders/logger"; import httpStatus from "http-status"; export class ErrorHandlers { loggerDependency = inversifyContainer.get<Logger>(TYPES.LoggerDependency); notFound(req, res, next) { const error = new Error("Not Found"); error["status"] = 404; next(error); } public handler(err, req, res, next) { const response = { code: err.status, message: err.message || httpStatus[err.status], errors: err.errors, stack: err.stack, }; if (process.env.NODE_ENV !== "development") { delete response.stack; } res.status(err.status); res.json(response); } }

Alguien más ha experimentado esto antes? Por favor, avíseme si hay algo más que pueda brindarle asistencia.

Hasta ahora no he podido identificar el problema. ¡Cualquier ayuda será apreciada!

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Así que... ehmmm.

Estamos usando cloud foundry (en IBM).

Lo que sucedió fue que, en el pasado, nuestro continuous deployment se atascó . Luego cancelamos manualmente esa implementación, para que las implementaciones en cola pudieran ejecutarse y continuar en ese momento :)

Lo que me di cuenta hoy fue que la aplicación ANTIGUA nunca se borró. Este era un servicio de fundición en la nube que se ejecutaba en el mismo dominio (url) que el servicio de fundición en la nube activo, lo que efectivamente lo convirtió en 2 instancias en ejecución, en otras palabras.

Obviamente, el servicio ANTIGUO no tenía este nuevo punto final y nunca lo tendría, ya que se separó de la implementación.

Una vez que eliminé el servicio anterior, este problema desapareció por completo.

Gracias a cualquiera que se haya tomado el tiempo de leer todas estas tonterías. ¡Salud!

over 4 years ago · Santiago Trujillo 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