Без опису

zs 536dfadfcd 修改 3 днів тому
src 536dfadfcd 修改 3 днів тому
test c63dc93d4c init 2 тижнів тому
.editorconfig c63dc93d4c init 2 тижнів тому
.eslintrc.json c63dc93d4c init 2 тижнів тому
.gitignore c63dc93d4c init 2 тижнів тому
.prettierrc.js c63dc93d4c init 2 тижнів тому
README-Frame.md c63dc93d4c init 2 тижнів тому
README.md c63dc93d4c init 2 тижнів тому
bootstrap.js c63dc93d4c init 2 тижнів тому
ecosystem.config.js c63dc93d4c init 2 тижнів тому
jest.config.js c63dc93d4c init 2 тижнів тому
package-lock.json 48576139b8 修改 2 тижнів тому
package.json 48576139b8 修改 2 тижнів тому
tsconfig.json c63dc93d4c init 2 тижнів тому

README-Frame.md

新框架

不在通过npm发布,直接拉取项目直接用.这样方便各个项目修改对框架的需求

1.不再使用中间件做返回处理,使用静态类处理:

    RF => ResponseFormat
    RF.success(data?:any):
    return {
      errcode: '0',
      errmsg: 'ok',
      data,
    }
  RF.error(e?:string):
  return {
    errcode: '400',
    errmsg: e || '服务发生错误',
  }

2.controller的interface,负责验证参数部分,有需要自己写

  export class XXXDTO {
    @ApiProperty({ description: "xxx" }) // (swagger参数说明)
    @Rule(RuleType['${dataType}']().${methodName}()) // dataType:数据类型; methodName:判断方法
    [${columnName}]: ${dataType} = undefined; // columnName:接收的字段名; dataType:数据类型; = undefined 可写可不写;
  }

3.异常类ServiceError和异常过滤器ServiceError 重写

现在声明异常为以下方式即可使用

  export const ErrorCode = {
    UNKNOW: { code: '-1', msg: '未知错误' },
    NOT_LOGIN: { code: '401', msg: '未登录' },
  };

使用方式:

  throw new ServiceError(ErrorCode.UNKNOW)

4.重写查询条件处理,单独生成函数.默认在自定义Query中使用

新增两个参数注解:

1.Query: @Query(mapping?:object): object

重做了下Query注解: 新Query注解中, 自动过滤掉skip和limit; 剩下的查询条件根据key的符号.由QueryUtils.QueryReset函数处理. mapping为字段映射,{ ${接收字段}: ${映射为的字段} }

2.Page: @Page():object

提取分页对象的注解,里面有skip和limit两个参数

5.checkToken中间件重写,根据config.passToken:Array 中的路由设置判断

useCheckTokenMiddleware: true, //启用checkToken中间件
passToken: [], //写Get/Post/Delete注解的路径,遇到这些路径时,checkToken处理token,但是跳过检查
tokenKey: 'token' // 请求头中的token的key名,默认为token

6.框架自带上传,下载;可以设置文件位置,默认在项目根目录下:

原upload插件改为busboy,所以设置也得改成busboy

  busboy:{
    mode:'file' // 默认,基本不用改
    realdir: 'upload' // 真实路径,默认是项目根目录的upload文件夹下
    whitelist: null,//默认不限制,如果要限制,就到midwayjs官网看下咋写
    columns: [] // 涉及文件的字段:${model的class名}.${字段名}.清除不用的文件时就根据这里设置的去清除,没写进去的都会被删掉
  }

7.登录检查不再使用redis,而是通过数据库直接检查