koa 搭建一个后台,实现crud, swagger,loger记录等

简介: 这么些api接口,然后把swagger也给加上,方便测试和维护api的文档,这也是后端一直需要做的事情,作为前端工程师,咋们虽然写后台代码不多,但是需要知道人家的工作内容是咋样的,参数怎么传递的,这样有利于联调。

突然发现自己在一段时间都没有写博客了,最近杂七杂八的事情比较多。一直搞个不停,最近在写个人博客后台,决定使用koa,然后自己肯定需要先搭建一个小demo方便代码的实现。


效果


20210616131138662.png


这么些api接口,然后把swagger也给加上,方便测试和维护api的文档,这也是后端一直需要做的事情,作为前端工程师,咋们虽然写后台代码不多,但是需要知道人家的工作内容是咋样的,参数怎么传递的,这样有利于联调。


源码地址


https://github.com/cll123456/my-blog-serve.git


项目搭建过程


包配置


dependencies devDependencies
"@koa/cors": "^3.1.0" 处理koa跨域 "@types/koa__cors": "^3.0.2" cors类型检查包
""@koa/router": "^10.0.0" koa路由 "@types/koa__router": "^2.13.3" 路由的类型检查包
"koa": "^2.13.1" koa本身包 "@types/koa": "^2.13.3" koa的类型检查包
"koa-bodyparser": "^4.3.0" 解析koa body传参方式 "@types/koa-bodyparser": "^4.3.1" koa处理body传参的类型检查包
"koa2-swagger-ui": "^5.1.0" swagger 的ui展示包 "@types/node": "^15.12.1" node的类型检查包
"log4js": "^6.3.0" 日志处理 "nodemon": "^2.0.7" 使用nodemon 来便捷开发
"mysql2": "^2.2.5" 处理mysql "ts-node": "^10.0.0" ts代码编译直接在内存中进行编译
"sequelize": "^6.6.2" mysql的orm包 "typescript": "^4.3.2" 使用ts提供类型检查
"validator": "^10.11.0" 数据验证 "@types/validator": "^13.1.4" validator的类型检查包


脚本配置


build ,最终打包成一个dist,(这是windows的指令) dev 启动nodemon 然后在ts-node中来编译代码
rd /s /q dist & tsc nodemon --watch src -e ts --exec ts-node src/index.ts


tsconfig 配置


{
  "compilerOptions": {
    "target": "es5",                              
    "module": "commonjs",                          
    "lib": ["es2016","ESNext"],                                  
    "removeComments": true,                     
    "importHelpers": true,                      
    "isolatedModules": true,                   
    "strict": true,                               
    "esModuleInterop": true,      
    "resolveJsonModule":true,                 
    "experimentalDecorators": true,             
    "emitDecoratorMetadata": true,               
    "skipLibCheck": true,                          
    "forceConsistentCasingInFileNames": true,      
    "outDir": "./dist",  
  },
  "include": ["src", "utils/db", "utils/logger/logger.ts"], 
  "exclude": [
    "node_modules"
  ]
}


项目结构


20210616154055204.png


目录 作用
config 项目配置文件
controller 项目的控制层,默认是一个koa的中间件,主要的作用是精细化路由的中间件
model 模型,主要是用来配置数据的字段和数据字段的验证等
router 路由,对外暴露的路由层,这里用来配置swagger和路由的路径等
service 业务逻辑层,主要用来操作模型,并且验证数据是否合理
util 工具包,里面主要包含连接数据库,日志,swagger等
index.ts 项目的主要入口,初始化操作和启动一个koa服务


本来想在这里写一个基本的流程,但是感觉每个层里面的东西有点多,写起来工作量有点大,这里只记录项目的核心,感兴趣的直接看源码就行。

相关文章
|
8月前
|
JavaScript 数据库 Python
django实现增删改查分页接口
django实现增删改查分页接口
|
5月前
|
SQL JavaScript 前端开发
vue中使用分页组件、将从数据库中查询出来的数据分页展示(前后端分离SpringBoot+Vue)
这篇文章详细介绍了如何在Vue.js中使用分页组件展示从数据库查询出来的数据,包括前端Vue页面的表格和分页组件代码,以及后端SpringBoot的控制层和SQL查询语句。
vue中使用分页组件、将从数据库中查询出来的数据分页展示(前后端分离SpringBoot+Vue)
|
7月前
|
前端开发 JavaScript Java
SSMP整合案例第六步 在前端页面上利用axios和element-ui与后端交互实现增删改
SSMP整合案例第六步 在前端页面上利用axios和element-ui与后端交互实现增删改
59 1
|
7月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue的城市公交在线查询系统的详细设计和实现
基于SpringBoot+Vue的城市公交在线查询系统的详细设计和实现
32 1
|
前端开发 Java
前后端springboot+vue+实现部门的增删改功能记录
前后端springboot+vue+实现部门的增删改功能记录
88 0
|
8月前
|
前端开发 Java 数据库
基于SpringBoot+Vue学生成绩管理系统前后端分离(源码+数据库)
基于SpringBoot+Vue学生成绩管理系统前后端分离(源码+数据库)
168 0
|
前端开发 Java
【React工作记录九十七】前后端springboot+vue+实现部门的增删改功能记录
【React工作记录九十七】前后端springboot+vue+实现部门的增删改功能记录
65 0
|
前端开发 JavaScript Java
【React工作记录九十八】记录一次艰难的云服务器部署前后端项目springBoot+mybatis+vue(两天解决的前后端跨域问题多种方式)...
【React工作记录九十八】记录一次艰难的云服务器部署前后端项目springBoot+mybatis+vue(两天解决的前后端跨域问题多种方式)...
154 0
|
JavaScript Java 前端开发
|
JavaScript Java
springboot和vue搭建前后端项目实现员工的增删改查
springboot和vue搭建前后端项目实现员工的增删改查
112 0