UNPKG

@fran-834/gs-microservice-core

Version:

Core package for Node.js microservices by Galduria Software. Includes security, logging, validation, and error handling middlewares.

22 lines (21 loc) 1.09 kB
import { commonErrors, commonHTTPErrors } from "./errorLists.js"; import standardResponse from "../standardResponse.js"; import { logError } from "../logger/logOperation.js"; /** * Express error-handling middleware. Logs the error and sends a standard response. */ const errorsMiddleware = (err, req, res, next) => { // Log the error logError(req, err); // Check if the error is a SequelizeUniqueConstraintError const error = {}; if (err?.name === "SequelizeUniqueConstraintError") { error.httpCode = commonHTTPErrors.conflict; error.description = err?.errors[0]?.message ? err.errors[0].message : commonErrors.conflict; } // Return the response return standardResponse(res, err?.httpCode ? err.httpCode : error?.httpCode ? error.httpCode : 500, err?.description ? err.description : error?.description ? error.description : "Internal Server Error", process.env.NODE_ENV === "development" || process.env.NODE_ENV === "docker" ? `${err?.message ? err.message + ", " : ""}${err.stack}` : null); }; export default errorsMiddleware;