Vue2+Koa2+Typescript前后端框架教程--03后端路由和三层模式配置
昨天将Koa2的基础框架和自动编译调试重启服务完成,今天开始配置路由和搭建基础的三层架构模式。
路由中间件:koa-router,即路由导航,就是我们平时使用最广泛的get/post方法执行的URL路径,其全部包括get、put、post、patch、delete、del,通过访问路径,指向不同的模块,指向不同的业务方法;
基础三层模式架构:即Model,Service,Controller,数据流向是Router-->Controller-->Service-->Model-->Database。如下图:

上图说明:
1. 每个router指向一个controller,一个控制器代表一个模块,一个模块即是一个业务,业务内部进行逻辑处理,但各个模块之间没有直接业务关系,降低模块耦合,比如班级管理,课程管理,学生管理,教师管理;
2. controller访问service,service即每个单元级(数据模型model)逻辑处理服务。当controller进行业务处理时,需要对业务逻辑服务进行调用,比如班级管理中,主要业务是对班级的处理(增删改查),但是班级的数据结构中也包括班主任ID,所以此时也要对班主任ID字段进行保存,在读取班级信息时,有时就需要班主任ID,通过教师服务关联教师表的信息,将教师姓名、手机号等信息进行展示。
3. service访问model,一个单元级服务只访问一个数据模型,如班级单元服务-->班级数据模型,也就是班级的增删改查的处理;
4. model通过ORM映射到database数据库中对应表,进行访问和存储。
在代码结构中,我们先在src路径下建立相关文件夹:(更改:将上篇中的index.ts重命名app.ts【看起来正式点】,移入src根目录,并修改launch.js中的program对应路径和文件名,以及package.json中scripts中相关指令的index.js->app.js)
另外,package.json中,修改tsconfig.json中包含的路径:

F5运行,localhost:3000即显示运行结果。
今天先到这里,即介绍和搭建三层模式,明天添加相关TS文件做详细案例介绍。
Vue2+Koa2+Typescript前后端框架教程--03后端路由和三层模式配置的更多相关文章
- Vue2+Koa2+Typescript前后端框架教程--05Sequelize的使用(ORM)
		
本篇开始分享Node.js后端服务开发中对于数据结构ORM的实现,主要使用的技术栈是:Sequelize. 上一篇文章中讲到班级管理的数据结构:ID,班级名称,班级编码,班主任ID,使用的数据库是My ...
 - Vue2+Koa2+Typescript前后端框架教程--04班级管理示例(路由调用控制器)
		
上篇文章分享了简单的三层模式和基础文件夹的创建,本篇将以示例的形式详细具体的展示Router.Controller.Service.Model之间业务处理和数据传输. 1. 班级管理数据模型创建.数据 ...
 - 2017年 JavaScript 框架回顾 -- 后端框架
		
本文是2017年 JavaScript 框架回顾系列的最后的一篇文章,主要介绍 JavaScript 的后端框架情况. 从上图中可以看到,Express 作为用 JavaScript 编写的后端服务的 ...
 - 老吕教程--01后端Node.js框架搭建(安装调试KOA2)
		
今天开始从零搭建后端框架,后端框架基于Koa2,通过Typescript语言编写. 在写后端框架之前,自己也了解过Express,感觉Koa2更加灵活,由于有多年后端研发经验,所以采用Koa2,简单敏 ...
 - 前后端分离框架前端react,后端springboot跨域问题分析
		
前后端分离框架前端react,后端springboot跨域问题分析 为啥跨域了 前端react的设置 springboot后端设置 为啥跨域了 由于前后端不在一个端口上,也是属于跨域问题的一种,所以必 ...
 - Koa 框架教程
		
Koa 框架教程 作者: 阮一峰 日期: 2017年8月 9日 Node 主要用在开发 Web 应用.这决定了使用 Node,往往离不开 Web 应用框架. Koa 就是一种简单好用的 Web 框 ...
 - 基于Nodejs生态圈的TypeScript+React开发入门教程
		
基于Nodejs生态圈的TypeScript+React开发入门教程 概述 本教程旨在为基于Nodejs npm生态圈的前端程序开发提供入门讲解. Nodejs是什么 Nodejs是一个高性能Ja ...
 - jfinal框架教程-学习笔记
		
jfinal框架教程-学习笔记 JFinal 是基于 Java 语言的极速 WEB + ORM 开发框架,其核心设计目标是开发迅速.代码量少.学习简单.功能强大.轻量级.易扩展.Restfu ...
 - Java后端框架之Spring Boot详解,文末有Java分布式实战项目视频可取
		
在 Java 后端框架繁荣的今天,Spring 框架无疑是最最火热,也是必不可少的开源框架,更是稳坐 Java 后端框架的龙头老大. 用过 Spring 框架的都知道 Spring 能流行是因为它的两 ...
 
随机推荐
- 2020.11.26 IntellJ idea激活码失效解决方法(最新idea激活码及安装参数!)
			
今天是2020年11月26号,小伙伴们是不是有发现自己的idea激活码失效了,不瞒大家,小编也是一个JAVA开发者,到了公司打开idea,然后就发现事情不妙,经过1个多小时的摸索,终于把最近的安装参数 ...
 - C语言是如何诞生的?地位怎样?未来发展趋势?
			
C语言的历史 C语言的原型是A语言(ALGOL 60语言). 1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言. 1967 ...
 - 对称加密之---AES加密
			
工作中常会需要让数据传输前进行加密处理.这次用到的是AES加密.AES加密中,需要注意到坑还是挺多的.对AES也进行了一番了解,发现里面的东西真的是注意的太多了.今天只是整理了一种简单的加密格式,工作 ...
 - moviepy音视频剪辑VideoClip类to_ImageClip方法使用注意事项
			
☞ ░ 前往老猿Python博文目录 ░ moviepy音视频剪辑VideoClip类to_ImageClip方法将剪辑对应时刻t的帧转换成ImageClip图像剪辑,图像剪辑是所有帧都是固定图像数据 ...
 - 第12.6节 Python标准库其他内置模块导览
			
一. 文本处理服务 string模块 : 常见的字符串操作 difflib模块: 计算差异的辅助工具 textwrap模块: 文本自动换行与填充,能够格式化文本段落,以适应给定的屏幕宽度: unico ...
 - Django 框架基本操作(二)
			
一.设计表结构 1.班级表结构 表名:grade 字段:班级名称(gname).成立时间(gdate).女生总数(ggirlnum).男生总数(gboynum).是否删除(isDelete) 2.学生 ...
 - 【题解】P2610 [ZJOI2012]旅游
			
link 题意 T国的国土可以用一个凸N边形来表示,包含 \(N-2\) 个城市,每个城市都是顶点为 \(N\) 边形顶点的三角形,两人的旅游路线可以看做是连接N个顶点中不相邻两点的线段.问一路能经过 ...
 - AT2688 [ARC080C] Young Maids
			
一道挺有意思的题目,在这里记录一下. 题目大意 给你一个长度为 \(n\) 的排列,每一次你可以取出相邻的两个数将其放在答案序列的开头,最后问你字典序最小的答案序列是什么. 题解 由于最后是求字典序最 ...
 - webstorm2017.02版本如何使用material theme
			
本想废话一番,表达对material theme的喜欢.还是直接说方法吧~ file-settings-Plugins-Browse repositories-搜索 material theme -选 ...
 - STL——容器(Set & multiset)的删除 erase
			
set.clear(); //清除所有元素 set.erase(pos); //删除pos迭代器所指的元素,返回下一个元素的迭代器. set.erase(beg,end ...