Skip to content
On this page

koa-error

简介

koa-error 是一个用于统一处理错误的中间件,它可以捕获应用中的错误并提供一致的错误响应格式,支持自定义错误页面和错误处理逻辑。

安装

bash
npm install koa-error

基本使用

javascript
const Koa = require('koa');
const error = require('koa-error');

const app = new Koa();

// 注册错误处理中间件
app.use(error());

app.use(async (ctx) => {
  // 模拟一个错误
  throw new Error('发生了一个错误');
});

app.listen(3000);

高级配置

javascript
const Koa = require('koa');
const error = require('koa-error');
const path = require('path');

const app = new Koa();

app.use(error({
  // 自定义错误页面模板
  template: path.join(__dirname, 'views/error.html'),
  
  // 自定义错误处理
  handler: async (err, ctx) => {
    // 记录错误日志
    console.error(err);
    
    // 根据错误类型返回不同的状态码
    if (err.status) {
      ctx.status = err.status;
    } else {
      ctx.status = 500;
    }
    
    // 返回JSON格式的错误信息
    ctx.body = {
      code: ctx.status,
      message: err.message,
      stack: process.env.NODE_ENV === 'development' ? err.stack : undefined
    };
  },
  
  // 是否返回错误堆栈信息
  engine: 'ejs',                // 模板引擎
  cache: process.env.NODE_ENV === 'production',  // 是否缓存模板
  accepts: ['json', 'html']     // 支持的响应格式
}));

app.listen(3000);

注意事项

  1. 错误处理中间件应该注册在所有其他中间件之前
  2. 在生产环境中不要暴露详细的错误堆栈信息
  3. 建议配合日志中间件使用,记录错误详情
  4. 可以根据不同的错误类型返回不同的状态码和错误信息
  5. 自定义错误页面时要注意保持良好的用户体验

要保持清醒 永远不抱有意外的幻想 凭空的期待最要命