Browse Source

fix(middlewares): 修正错误处理中响应内容类型及增强开发环境错误堆栈输出

- 将非HTML错误响应的内容类型从json改为text
- 调整错误响应体格式,统一为纯文本格式及状态信息
- 在开发环境中错误捕获时输出完整的错误堆栈到控制台
- 优化错误处理逻辑,提升调试体验和错误信息可读性
pure
谢亚昕 3 months ago
parent
commit
b5d115b713
  1. 5
      src/middlewares/errorHandler/index.js

5
src/middlewares/errorHandler/index.js

@ -12,7 +12,7 @@ async function formatError(ctx, status, message, stack) {
ctx.type = "html"
await ctx.render("error/index", { status, message, stack, isDev })
} else {
ctx.type = "json"
ctx.type = "text"
ctx.body = isDev && stack ? `${status} - ${message}\n${stack}` : `${status} - ${message}`
}
ctx.status = status
@ -34,6 +34,9 @@ export default function errorHandler() {
} 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)
}
}

Loading…
Cancel
Save