Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

255
Views
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!

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

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!

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!