React全家桶 + TS + 后端Koa Server + MongoDB - 全栈实战(一)

265 阅读1分钟

React全家桶 + TS - 全栈实战(零)

React全家桶 + TS + 后端Koa Server + MongoDB - 全栈实战(一)

Vue3全家桶 + TS + 后端Koa Server + MongoDB - 全栈实战(二)

前端React SSR + TS + 后端Koa Server + MySQL - 全栈实战(三)

前端Vue3 SSR + TS + 后端Koa Server + MySQL - 全栈实战(四)

需求

开发一个在线文档任务管理工具

纯手工从0到1编码,没有使用脚手架

前端项目GitHub地址
后端项目GitHub地址

前端运行: npm run dev
后端运行: npm run server

访问: http://localhost:8121/todo

技术栈

前端:
  对项目结构进行重构
  直连Nodejs后端服务
    
后端:
  框架:Koa
  对象关系映射:TypeORM
  数据库:MySQL

后端组织结构

src
  constants             --- 常量
  controller            --- 控制器
  entity                --- 实体类
  router                --- 路由
  utils                 --- 工具
  data-source.ts        --- ORM配置
  server.ts             --- 入口文件
test
.env                    --- 环境变量
.eslintrc
package.json
tsconfig.json

使用TypeORM之后,直接根据entity创建表结构

swagger接口文档

中间件

常见错误

Client does not support authentication protocol requested by server;

解决: 
  select user, host, plugin from mysql.user;
  alter user 'root'@'localhost' identified with mysql_native_password by 'root';
  flush privileges;
  select user, host, plugin from mysql.user;

登录鉴权

jsonwebtoken
koa-jwt