0.1.4 • Published 2 years ago

egg-error v0.1.4

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

egg-error

NPM version build status Test coverage David deps Known Vulnerabilities npm download

依赖说明

依赖的 egg 版本

egg-error 版本egg 1.x
1.x😁
0.x

依赖的插件

开启插件

// config/plugin.js
exports.error = {
  enable: true,
  package: 'egg-error',
};

使用场景

  • Why:
    • 因为业务场景下,报错信息不完整,缺失,个性丰富,所以萌生了此项目。
    • 将爆破错信息收口至同一场景,统一约定统一入口,同时要体现约定而非配置。
  • and What:

    • 有统一的配置,在 app/error/ 文件夹下统一配置
    • 使用时,在service层绑定在ctx下直接使用
  • How:

    • 配置错误信息:
      // app/error/order/demo.js
      // @param {number} code          业务报错代码
      // @param {string} errorMsg      业务错误报错
      // @param {number} statusCode    ctx http status code return
      // @param {string} msg           ctx 返回错误信息
      // @param {function} after         事后处理 ctx, eggError(错误配置信息)
      module.exports.testError = {
               code: "100010",
               errorMsg: "这里是业务${business}报错:${bsMessage}",
               statusCode: "500",
               msg: "不好意思。${userErrorType},请重试${business}",
               after: (ctx, eggError) =>{....}
      }
    • 基本使用:
      class HomeController extends Controller {
      async index() {
          const {ctx} = this;
          const error = ctx.error.order.demo.testError({
              business: "预定", bsMessage: "JSON Invalid", userErrorType: "提交数据不完整"
          });

    输出

    >>> 2022-08-05 15:58:35,059 ERROR 17395 [-/127.0.0.1/-/16ms GET /] [order|demo] [100010] 这里是业务预定报错:JSON Invalid
    • 返回的error结构

      • afterResult {any}
          // after {optional function} 配置返回的结果
          error.afterResult 
      • throw {function}
          // 可以抛出异常,使用的是 ctx.throw
          error.throw();
        • 输出
          2022-08-05 16:06:05,037 ERROR 18145 [-/127.0.0.1/-/20ms GET /] nodejs.InternalServerError: 不好意思。提交数据不完整,请重试预定
           at Object.throw (/Users/xx/Documents/Codes/js/demoeggorder/node_modules/koa/lib/context.js:97:11)
           at Object.throw (/Users/xx/Documents/Codes/js/demoeggorder/node_modules/egg-error/lib/baseError.js:53:38)
           at HomeController.index (/Users/xx/Documents/Codes/js/demoeggorder/app/controller/home.js:13:16)
           at Object.callFn (/Users/xx/Documents/Codes/js/demoeggorder/node_modules/egg-core/lib/utils/index.js:44:21)
           at Object.classControllerMiddleware (/Users/xx/Documents/Codes/js/demoeggorder/node_modules/egg-core/lib/loader/mixin/controller.js:87:20)
           at Object.callFn (/Users/xx/Documents/Codes/js/demoeggorder/node_modules/@eggjs/router/lib/utils.js:12:21)
           at wrappedController (/Users/xx/Documents/Codes/js/demoeggorder/node_modules/@eggjs/router/lib/egg_router.js:322:18)
           at dispatch (/Users/xx/Documents/Codes/js/demoeggorder/node_modules/koa-compose/index.js:44:32)
           at next (/Users/xx/Documents/Codes/js/demoeggorder/node_modules/koa-compose/index.js:45:18)
           at /Users/xx/Documents/Codes/js/demoeggorder/node_modules/@eggjs/router/lib/router.js:186:18
          message: "不好意思。提交数据不完整,请重试预定"
          pid: 18145
          hostname: MacBook-Pro.local
      ```

详细配置 (无)

单元测试(无)

提问交流

请到 egg issues 异步交流。

License

MIT

0.1.4

2 years ago

0.1.3

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago

0.0.0

6 years ago