Skip to content

参考java框架springboot, 在koa中使用ts的decorator完成路由注册

Notifications You must be signed in to change notification settings

AsherWang/koa-springboot

Repository files navigation

koa-springboot

npm version last commit travis publish size license

feature

  • use decorator to build router
  • auto import controller
  • validate required params

install

npm i koa koa-router koa-springboot -S

demo

controller

// ...
@RequestMapping('/persons')
@ResponseBody
export default class Person {

  @GetMapping
  index() {
    return list;
  }

  @GetMapping('/:id')
  show(@PathVariable('id') id: string) {
    // ...
    return record;
  }

  @PostMapping
  create(@RequestBody body: any) {
    // ...
    return newRecord;
  }

  @PutMapping('/:id')
  update(@PathVariable('id') id: string, @RequestBody body: any) {
    // ...
  }

  @PatchMapping('/name/:id')
  patch(@PathVariable('id') id: string, @RequestBody body: any) {
    // ...
  }

  @DeleteMapping('/:id')
  destory(@PathVariable('id') id: string) {
    // ...
  }
}

app

// ...
@ControllerScan(__dirname, 'controller')
class App extends Application {
  // override init method to do you own logic
  // or not
  protected init() {
    this.app
    .use(bodyParser())
    .use(this.router.routes())
    .use(this.router.allowedMethods());
  }
}

new App().start();

see full demo here

reference

docs of spring mvc

About

参考java框架springboot, 在koa中使用ts的decorator完成路由注册

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published