Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

225
Visualizações
¿Cómo puedo hacer que este middleware personalizado se ejecute cuando ocurre un error en express?

¡Hola, gente guapa y genial, totalmente increíble! Estoy tratando de hacer que esta función de middleware personalizada se ejecute ante un error. Estoy usando express y tengo una función de middleware personalizada que debería ejecutarse cuando se produce un nuevo error.

Todo esto está escrito en expreso. He leído los documentos y todavía estoy luchando para corregir esto. Aquí está la función de middleware.

 const errorHandler = (err, req, res, next) => { console.log("running error handler middleware") const statusCode = res.statusCode ? res.statusCode : 500 res.status(statusCode) res.json({ message: err.message, stack: process.env.NODE_ENV === "production" ? null : err.stack }) } module.exports = errorHandler

Aquí está mi punto de entrada

 const express = require('express') const dotenv = require('dotenv').config() const colors = require('colors') const errorHandler = require('./middleware/errorMiddleware') const connectDB = require('./config/db') const port = process.env.PORT || 5000 const app = express() connectDB() //these lines of middleware allow us to grab info from the req.body app.use(express.json()) app.use(express.urlencoded({extended:false})) app.use('/api/goals', require('./routes/goalRoutes')) app.use('/api/users', require('./routes/userRoutes')) //pulling in our error handler middleware app.use(errorHandler) app.listen(port, () => { console.log(`Server started on port ${port}`) })

He confirmado que la estructura de mi archivo es correcta y estoy extrayendo el middleware desde la ubicación correcta. También me aseguré de colocar mi app.use(errorHandler) en la parte inferior de mi código para asegurarme de que sea el último controlador de errores que se ejecute.

A partir de ahora, cuando encuentro un error, mi aplicación falla por completo y no devuelve una respuesta json con un seguimiento de la pila.

Esto va a causar problemas más adelante cuando intente enviar errores al lado del cliente.

Siempre puedo volver a definirlos manualmente a través de res.status(statusCode).json({mensaje}) pero esta es la forma de "nodo" de hacer las cosas y no implementa la sintaxis expresa de "lanzar nuevo error (mensaje)"

¿Alguna idea sobre cómo obtener una respuesta json de esto sin que la aplicación se bloquee mientras se sigue usando el manejo de errores personalizado y se lanza un nuevo error?

Muchas gracias por el tiempo, lo aprecio!

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda