Skip to content

控制器

控制器主要的功能是处理用户的请求,一个控制器类,下面对应不同的功能实现。

一个简单的控制器示例:

ts
export class HomeController extends FireCatController {

  @Get('/')
  @Request()
  index(ctx: Context) {
    ctx.body = 'hello world'
  }

  @Get('/foo')
  @Request()
  foo(ctx: Context) {
    ctx.body = 'bar'
  }

}

控制器一般搭配各种装饰器使用,来便捷实现不同功能,你可以在 装饰器 章节看到详细的说明。

绑定到路由

实现了控制器的功能之后,然后把控制器绑定到路由上。

ts
import {FireCatRouter} from "fire-cat";
import {HomeController} from "@/controller/home";

const fireRouter = new FireCatRouter()

fireRouter.controller('/', new HomeController())

自定义控制器

自定义控制器可以让你在原有的控制器上实现各种自定义功能。
Ps:FireCat初始化的项目里,在mixin目录里提供了基本的自定义控制器。

例如对返回格式的统一:

ts
import {FireCatController} from "fire-cat";

export class AppController extends FireCatController {
  success(props: object) {
    return {
      code: 200,
      data: props
    }
  }
  error(props: object) {
    return {
      code: 500,
      data: props
    }
  }
}

然后你就可以愉快的使用:

ts
class MyController extends AppController {
  @Post('/hello')
  hello(ctx: Context) {
    ctx.body = this.success({
      list: [1, 2, 3]
    })
  }
}

Released under the MIT License.