@zenweb/result
TypeScript icon, indicating that this package has built-in type declarations

5.0.0 • Public • Published

result - 结果处理

控制器返回结果统一处理,默认返回格式为 JSON

依赖模块

  • @zenweb/inject

配置项

配置项 类型 默认值 功能
failCode number 默认失败代码
failStatus number 422 默认失败HTTP状态码
json.success (ctx: Context, data?: unknown): unknown return { data } 成功结果包装
json.fail (ctx: Context, err: ResultFail): unknown return { err.code, err.data, err.message } 错误结果包装
exposeUnexpected boolean false 暴露意外错误信息。可以设置环境变量 EXPOSE_UNEXPECTED==1 开启
unexpectedStatus number 500 意外错误HTTP状态码
unexpectedCode number 500 意外错误代码

Core 挂载项

Context 挂载项

挂载项 类型 功能
success (data?: unknown): Promise 成功,输出结果。(注意:代码会继续执行),如果需要等待结果包装需要 await

全局方法

方法 类型 功能
fail (message: string): never 直接输出错误消息
fail (code: number, message?: string): never 错误代码 + 错误消息
fail (detail: ResultFailDetail): never 失败,输出错误信息并终止代码执行(更多选项)

可注入对象

  • singleton
    • RenderManager

演示

import { mapping, fail } from 'zenweb';

export class ResultController {
  @mapping()
  hello() {
    return 'Hello';
  }

  @mapping()
  error() {
    fail('error info'); // 在调用 fail 方法后会直接跳出方法并输出
    console.log('这行不会执行');
  }
}

失败输出

fail(400); // 错误代码
fail('错误消息');
fail(400, '错误消息'); // 错误代码 + 消息
// 完全自定义
fail({
  code: 123,
  message: "自定义",
  status: 200,
});

/@zenweb/result/

    Package Sidebar

    Install

    npm i @zenweb/result

    Weekly Downloads

    137

    Version

    5.0.0

    License

    MIT

    Unpacked Size

    16.2 kB

    Total Files

    10

    Last publish

    Collaborators

    • yefei777