Node+TS+Koa+vue 商城全栈(六) koa-controllers

vue

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';

}

}

.

以上是 Node+TS+Koa+vue 商城全栈(六) koa-controllers 的全部内容, 来源链接: utcz.com/z/379080.html

回到顶部