18 lines
556 B
TypeScript
18 lines
556 B
TypeScript
|
|
import {Request, Response, NextFunction} from "express";
|
||
|
|
import {ApiError} from "../types/api";
|
||
|
|
|
||
|
|
export function errorHandler(err: any, req: Request, res: Response, next: NextFunction) {
|
||
|
|
console.error(err);
|
||
|
|
|
||
|
|
if (err instanceof ApiError) {
|
||
|
|
return res.status(err.status).json({code: err.status, message: err.message, data: null});
|
||
|
|
}
|
||
|
|
|
||
|
|
// tsoa 内部生成的验证错误
|
||
|
|
if (err.status && err.status >= 400) {
|
||
|
|
return res.status(err.status).json({ message: err.message });
|
||
|
|
}
|
||
|
|
|
||
|
|
res.status(500).json({ message: 'Internal Server Error' });
|
||
|
|
}
|