Files
feishin/src/server/middleware/error-handler.ts
T
2022-07-25 19:40:16 -07:00

32 lines
640 B
TypeScript

import { NextFunction, Request, Response } from 'express';
import { isJsonString } from '../utils';
export const errorHandler = (
err: any,
req: Request,
res: Response,
next: NextFunction
) => {
let message = '';
const trace = err.stack.match(/at .* \(.*\)/g).map((e: string) => {
return e.replace(/\(|\)/g, '');
});
if (err.message) {
message = isJsonString(err.message) ? JSON.parse(err.message) : err.message;
}
res.status(err.statusCode || 500).json({
error: {
message,
path: req.path,
trace,
},
response: 'Error',
statusCode: err.statusCode || 500,
});
next();
};