|
|
@ -12,7 +12,7 @@ async function formatError(ctx, status, message, stack) { |
|
|
ctx.type = "html" |
|
|
ctx.type = "html" |
|
|
await ctx.render("error/index", { status, message, stack, isDev }) |
|
|
await ctx.render("error/index", { status, message, stack, isDev }) |
|
|
} else { |
|
|
} else { |
|
|
ctx.type = "json" |
|
|
ctx.type = "text" |
|
|
ctx.body = isDev && stack ? `${status} - ${message}\n${stack}` : `${status} - ${message}` |
|
|
ctx.body = isDev && stack ? `${status} - ${message}\n${stack}` : `${status} - ${message}` |
|
|
} |
|
|
} |
|
|
ctx.status = status |
|
|
ctx.status = status |
|
|
@ -34,6 +34,9 @@ export default function errorHandler() { |
|
|
} catch (err) { |
|
|
} catch (err) { |
|
|
logger.error(err) |
|
|
logger.error(err) |
|
|
const isDev = process.env.NODE_ENV === "development" |
|
|
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) |
|
|
await formatError(ctx, err.statusCode || 500, err.message || err || "Internal server error", isDev ? err.stack : undefined) |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|