@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
JavaScript
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;