1.入口文件,引入 koa-controllers 模块

npm i -S koa-controllers

npm i -S reflect-metadata

app/index.ts

// import Koa from 'koa'; // 错误的写法
// import Koa = require('koa');
import * as Koa from 'koa';
import { useControllers } from 'koa-controllers';

let app = new Koa();

useControllers(app, __dirname + '/controllers/**/*.controller.js', {
  multipart: {
    dest: './uploads'
  }
})

app.listen(8000);

2.控制器

app/controllers/main.controller.ts

/**
 * 控制器是通过 class 来实现的
 * 但是并不是随便一个 class 他就能成为控制器
 * 类似继承的概念,koa-controllers 为我们提供了一个装饰器:Controller
 * 通过这个装饰器我们就可以把一个普通的类变成 具有 控制器特征的控制器类
 */
import { Controller, Get, Ctx, Post } from 'koa-controllers';
import { Context } from 'koa';

@Controller
class MainController {
  @Get('/')
  public async index(@Ctx ctx: Context) {
    /**
     * 我们希望用户在通过get方式访问 / 的时候执行该方法,我们就可以使用
     * Get,Post 装饰器来装饰该方法 
     */
    // console.log(ctx);
    ctx.body = 'hello';
  }

  @Post('/')
  public async indexPost(@Ctx ctx: Context) {
    ctx.body = 'hello post - zMouse';
  }
}

.

 

相关文章:

  • 2022-01-19
  • 2022-02-16
  • 2021-09-12
  • 2022-12-23
  • 2021-11-26
  • 2022-12-23
  • 2022-12-23
  • 2021-07-11
猜你喜欢
  • 2021-05-21
  • 2021-12-19
  • 2021-05-21
  • 2022-01-19
  • 2021-11-09
  • 2021-12-04
  • 2021-09-19
相关资源
相似解决方案