1.4.1 • Published 3 years ago

koa-matic v1.4.1

Weekly downloads
15
License
ISC
Repository
-
Last release
3 years ago

Koa-Matic

$ npm i koa-matic

这是 Koa 的路由接口参数自动化处理中间件,他附加在 Koa-router 上,目的是帮助你自动注册路由和处理转换请求参数类型,适用于中小型后台前后端分离的后端开发中间件。

不同于大多数 MVC 框架的结构,并没有采用 路由=>控制器=>业务层 的处理方式,而是注册多个 业务层模块 自动帮你以 类名/方法名 的方式注册路由,并帮你自动处理 参数

例子:

import Koa from 'koa'
import Router from 'koa-router'
import Body from 'koa-body'
//引入Koa-matic
import Matic from 'koa-matic'
//引入你的应用层
import Main from './Main.js'

const router = new Router()
const matic = new Matic(router,{
  argsError(code, msg) {}, //错误时处理函数 this 指向 Context
  returnValue(value){} //返回值处理函数 this 指向 Context
})

//注册应用
matic.use('/api', [Main]) //可注册多个[Main,App],use方法也可多次调用注册多个前缀接口

app.use(Body({ multipart: true }))
app.use(router.routes())
app.listen(8080)

定义方式

Mian.js

export default class Main {
  static getUser = { name: 'string', id: 'int' }
  async getUser(name, id) {
    
  }
}

定义一个静态属性 getUser 用来描述接口参数,定义一个方法 getUser 处理逻辑层,当静态属性方法重名时便会仍为是注册路由接口。

其中路由注册为:/api/Main/getUser

最终调用时会从请求 body,中合并 GETPOSTFILES 三者,并拿到同名的参数调用 getUser 方法,调用前会做类型的转换,需要依赖 koa-body 中间件。

如参数 id 转换类型为 Number (不带小数点)。

支持的类型

  • string

值:String

  • int

值:Number,不带小数点,四舍五入

  • float

值:Number,保留小数点

  • boolean

值:Boolean

  • date

值:Date对象

  • file

值:File对象

  • files

值:File对象[]

可选参数

大多数情况下,某些参数是可选的,即不强制提交时带上,可以通过 类型? 声明

export default class Main {
  static getUser = { name: 'string', id: 'int?' }
  async getUser(name, id = 20) {
    
  }
}

如果请求参数带有 id 则传递 id 的值调用,如果没有则使用默认值调用

限制参数范围

可以在参数类型后空格后添加一个值限制范围,受到约束的范围类型如下

  • string 12

字符串长度不得大于12

  • int 0

最小值不得小于0,

  • int 0,9

最小值不得小于0,最大值不得大于9

  • float

int 的约束

  • file image/

文件类型必须是 image/ 开头,如 image/png

  • file image/,20400

文件类型必须是 image/ 开头,且文件大小不得大于 20400

  • files

file 的约束

export default class Main {
  static getUser = { name: 'string 8', id: 'int? 1,9',file:'file image/,20400' }
  async getUser(name, id = 20,file) {
    
  }
}

构造函数

每个接口调用时都会实例化构造函数,传递参数: KoaContext 上下文和 一个函数 end

调用 end 函数会终止方法被调用,可传递一个值为返回值。

export default class Main {
  constructor(context, end) {
    end('失败')
    //此时getUser不会被调用
  }
  static getUser = { name: 'string', id: 'int?' }
  async getUser(name, id = 20) {
    
  }
}

配置说明

实例化 Matic 时需要传递一个配置参数,他有两个属性参数:argsError(参数错误处理) 和 returnValue (接口返回值处理),他俩均是一个函数,在被调用时内部 this 对象绑定为 KoaContext 上下文。

const matic = new Matic(router,{
  argsError(code, msg) {}, //错误类型:code 错误类型(0=参数为空,1=长度错误,2=参数不符合规则) msg 参数信息
  returnValue(value){} //value 每个接口的返回值
})

依赖重新定义这两个函数,你可以处理错误和处理接口的返回值。

其他

有问题可以通过邮箱联系:2279499274$qq.com

1.4.2

3 years ago

1.4.1

3 years ago

1.4.0

3 years ago

1.3.1

3 years ago

1.3.0

3 years ago

1.2.3

3 years ago

1.2.1

3 years ago

1.2.0

3 years ago

1.1.4

3 years ago

1.1.3

3 years ago

1.1.2

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago