1.0.7 • Published 9 months ago

koa-router-decorators-plus v1.0.7

Weekly downloads
-
License
MIT
Repository
-
Last release
9 months ago

koa-router-decorators-plus

本插件针对@rxts/koa-router-decorators进行更改拓展!

TOC

更改

  1. 解决在使用以后 route 挂载不上的问题(原因:没有引用controller文件注解不会触发
  2. Controller 添加prefix
  3. 添加参数校验方法paramsRequired

安装

# yarn
yarn add koa-router-decorators-plus

# npm
npm i koa-router-decorators-plus

使用方法

Controller 的使用

import { Controller, get, paramsRequired } from 'koa-router-decorators-plus'
import * as Koa from 'koa'
@Controller('/test')
export default class startApi {
  // 括号中如果不传入参数  则自动拼接url 即:/test/getIndex
  @get()
  async getIndex(ctx: Koa.Context, next: Function) {
    ctx.body = {
      a: 66666,
    }
  }

  @paramsRequired(['username', 'password'])
  @get('/login')
  async getString(ctx: Koa.Context, next: Function) {
    // 使用paramsRequired后会自动扫描ctx.request.query或则ctx.request.body上是否存在相关参数
    // 没有则返回400, 有则进入当前handler
    const { username, password } = ctx.request.query
    ctx.body = {
      username,
      password,
    }
  }

  @paramsRequired({
    body: ['username', 'password'],
    query: ['id'],
  })
  @post('/update')
  async update(ctx: Koa.Context, next: Function) {
    // 按配置读取body以及query上的参数
    const { username, password } = ctx.request.body
    ctx.body = {
      username,
      password,
    }
  }
}

路由注册

import Koa from 'koa'
import loadController from 'koa-router-decorators-plus'
import KoaRouter from 'koa-router'
const app = new Koa()
// 第二个参数为存放contorller的文件夹
loadController(router, resolve(__dirname, './controllers'))
const router = new KoaRouter()
app.use(router.routes())
app.use(router.allowedMethods())

License

MIT ©

1.0.7

9 months ago

1.0.6

11 months ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago