Node+TS+Koa+vue 商城全栈(六) koa-controllers
1.入口文件,引入 koa-controllers 模块
npm i -S koa-controllersnpm 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';
}
}
.
以上是 Node+TS+Koa+vue 商城全栈(六) koa-controllers 的全部内容, 来源链接: utcz.com/z/379080.html