1.安装模块
yarn add koa-bodyparser yarn add @types/koa-bodyparser -D
2.入口文件引入
app/index.ts
// import Koa from 'koa'; // 错误的写法 // import Koa = require('koa'); import * as Koa from 'koa'; import { useControllers } from 'koa-controllers'; import * as KoaBodyParser from 'koa-bodyparser'; import db from './models'; let app = new Koa(); // 中间件 app.use(async (ctx: Koa.Context, next) => { // 把db对象等其他一些数据挂在到当前的state下面 ctx.state.db = db; await next(); }); app.use(KoaBodyParser()); useControllers(app, __dirname + '/controllers/**/*.controller.js', { multipart: { dest: './uploads' } }) app.listen(8000);
3.添加分类
app/controllers/admin/category.controller.ts
/** * 分类 控制器 */ import { Controller, Get, Ctx, Post } from 'koa-controllers'; import { Context } from 'koa'; import { Model } from 'sequelize'; @Controller export class AdminCategoryController { /** * 获取分类信息列表 * localhost:8000/admin/category */ @Get('/admin/category') public async index(@Ctx ctx: Context) { /** * 方式一 */ // let categoryModel = <Model<any, any>>ctx.state.db['category']; /** * 方式二:类型断言 */ let categoryModel: Model<any, any> = ctx.state.db['category']; // 查询所有的分类信息 let categories = await categoryModel.findAll(); ctx.body = categories; } /** * 新增分类 * localhost:8000/admin/category/add */ @Post('/admin/category/add') public async add(@Ctx ctx: Context) { // console.log(ctx.request.body); let pid = (<any>ctx.request.body).pid || 0; let name = (<any>ctx.request.body).name || ''; if (name == '') { ctx.body = { code: 1, message: '分类名称不能为空' } return; } let categoryModel: Model<any, any> = ctx.state.db['category']; let category = categoryModel.build({ name, pid }); await category.save(); ctx.body = { code: 0, data: category } } }
.