zoukankan      html  css  js  c++  java
  • 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';
      }
    }

    .

  • 相关阅读:
    抓包
    tk(三)按钮的事件绑定
    python xlrd 模块(获取Excel表中数据)
    使用pycharm搜索框和正则表达式匹配内容
    Progressbar 实例
    python获取时间
    excel用xlrd日期变成42631.0
    Python中super的用法【转载】
    python类的继承和多态
    均值的性质及其应用
  • 原文地址:https://www.cnblogs.com/crazycode2/p/12243827.html
Copyright © 2011-2022 走看看