diff --git a/src/middlewares/ErrorHandler/index.js b/src/middlewares/ErrorHandler/index.js deleted file mode 100644 index 816dce4..0000000 --- a/src/middlewares/ErrorHandler/index.js +++ /dev/null @@ -1,43 +0,0 @@ -import { logger } from "@/logger" -// src/plugins/errorHandler.js -// 错误处理中间件插件 - -async function formatError(ctx, status, message, stack) { - const accept = ctx.accepts("json", "html", "text") - const isDev = process.env.NODE_ENV === "development" - if (accept === "json") { - ctx.type = "application/json" - ctx.body = isDev && stack ? { success: false, error: message, stack } : { success: false, error: message } - } else if (accept === "html") { - ctx.type = "html" - await ctx.render("error/index", { status, message, stack, isDev }) - } else { - ctx.type = "text" - ctx.body = isDev && stack ? `${status} - ${message}\n${stack}` : `${status} - ${message}` - } - ctx.status = status -} - -export default function errorHandler() { - return async (ctx, next) => { - // 拦截 Chrome DevTools 探测请求,直接返回 204 - if (ctx.path === "/.well-known/appspecific/com.chrome.devtools.json") { - ctx.status = 204 - ctx.body = "" - return - } - try { - await next() - if (ctx.status === 404) { - await formatError(ctx, 404, "Resource not found") - } - } catch (err) { - logger.error(err) - const isDev = process.env.NODE_ENV === "development" - if (isDev && err.stack) { - console.error(err.stack) - } - await formatError(ctx, err.statusCode || 500, err.message || err || "Internal server error", isDev ? err.stack : undefined) - } - } -}