Files
alibb-server/backend/src/middleware/error.ts
T
2026-08-27 16:11:49 +08:00

15 lines
574 B
TypeScript

import type { ErrorRequestHandler } from 'express';
import { env } from '../config/env.js';
export const errorHandler: ErrorRequestHandler = (err, _req, res, _next) => {
console.error(err);
const status = err.status ?? 500;
const isClientError = status >= 400 && status < 500;
// 5xx 在生产环境不回显内部 message(避免泄漏表名/SQL/堆栈);4xx 与 dev 环境保留
const message =
!isClientError && env.NODE_ENV === 'production'
? 'internal error'
: err.message ?? 'internal error';
res.status(status).json({ error: message });
};