美文网首页
koa router抽象实现业务代码解耦

koa router抽象实现业务代码解耦

作者: 晴窗细语 | 来源:发表于2020-09-08 17:29 被阅读0次

之前做内部项目,后台用koa搭建,router处理那里是由各个细分路由组合起来,在每个路由的回调里处理业务代码,将数据返回给前台。这几天看koa的书,里面讲到在koa里运用MVC将各个模块抽出来,实现代码解耦,记录一下。

原代码结构

|-- src
     |-- router/
        |--index.js
        |--test.js
     |-- app.js

  • app.js中读取加载router文件夹下所有router

  • index.js 中导出所有router

  • test.js 中处理路由以及执行业务处理

test.js结构大致为:

const router = require('koa-router')();

router.get('/index', async(ctx, next) => {
//处理业务代码
});

router.post('/path', async(ctx, next) => {
//处理业务代码
});

module.exports = router

koa中实现MVC

思路就是将router中处理业务代码的地方抽出来放在单独的文件中,实现业务解耦。

代码结构:
|-- src
    |-- controller/
        |-- home.js
     |-- router/
        |--index.js
     |-- app.js

其中,新增controller文件夹用,home.js用于处理业务逻辑,多个router js可对应多个controller js,这里只记录一个。

home.js大致结构为:

module.exports = {
    index: async (ctx, next) => {
        ctx.response.body = '....' //业务处理代码
    },
   // 从router js中抽象出来的各种业务代码
    path: async (ctx, next) => {

    },
  ……
}

router.js可相应作出修改:

const router = require('koa-router')();
cosnt HomeController = require('../controller/home');

module.exports = (app) => {
    router.get('/index', HomeController.home);
    router.post('/path', HomeController.path);
    // 其他路由处理
    ……
}

相应代码可相应作出修改。

相关文章

  • koa router抽象实现业务代码解耦

    之前做内部项目,后台用koa搭建,router处理那里是由各个细分路由组合起来,在每个路由的回调里处理业务代码,将...

  • 设计模式之代理模式

    代理模式 静态代理 动态代理 由上图代码可看到,proxy逻辑被抽象到ProxyHandler中,与业务完全解耦,...

  • Spring Boot自定义注解

    利用aop我们可以实现业务代码与系统级服务例如日志记录、事务及安全相关业务的解耦,使我们的业务代码更加干净整洁。自...

  • 解耦

    解耦 对于大型重构, 最有效的手段就是 解耦, 解耦的目的使实现代码高聚合、松耦合。 解耦为何如此...

  • 架构设计原则

    架构坚持组件化,持续重构,小而美。架构设计十大原则: 1.全面解耦原则:对业务进行抽象建模,业务数据与业务逻辑解耦...

  • PHP设计模式-桥接模式

    适用性 基础的结构型设计模式:将抽象和实现解耦,对抽象的实现是实体行为对接口的实现。 例如:人 => 抽象为属性:...

  • 使用@route装饰器简化koa-router写法

    前言 本文所有代码见github koa-router koa-router是koa项目中被广泛使用到的一个路由中...

  • 编程中的设计模式之桥接模式

    定义 桥接模式(Bridge Pattern)使抽象层和实现层解耦,使二者可以独立变化,属于结构型模式。 代码实例...

  • 项目笔记之 重构

    业务逻辑梳理功能模块梳理模块抽象解耦封装->模块组件化模块内部深度优化

  • 桥接模式

    将实现层与抽象层解耦分离,使两部分可以独立变化

网友评论

      本文标题:koa router抽象实现业务代码解耦

      本文链接:https://www.haomeiwen.com/subject/ulljektx.html