Node+TS+Koa+vue 商城全栈(六) koa-controllers
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'; } }
.