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

    .

  • 相关阅读:
    ec20 queclocator V1. 0 test
    javascript JSON.parse and JSON.stringify
    linux command pushd popd
    learning gcc #pragma once
    learning gcc __BEGIN_DECLS and __END_DECLS
    aarch-linux-gnu-g++ install
    启用”开始“菜单中的“运行”功能
    获取本机安装的软件清单
    固定任务栏
    优化菜单显示速度
  • 原文地址:https://www.cnblogs.com/crazycode2/p/12243827.html
Copyright © 2020-2023  润新知