【杰哥课堂】-项目实战-Node+Koa2从零搭建通用API服务
https://www.bilibili.com/video/BV13A411w79h 1
source:https://github.com/jj112358/node-api
01-项目初始化
02-项目的基础搭建
03-项目的基本优化(自动重启_配置文件)
yarn add dotenv
1将http服务和app业务拆分
srcapp config constant controller db middleware model router servicemain.js
04-添加路由(处理不同的URL请求)
05-目录结构优化(拆分服务,业务, 路由, 控制器)
06-解析body拆分service层
koa-body 操作数据库service
07-sequelize集成
七.数据库操作
sequelize ORM数据库工具
ORM:对象关系映射
数据表映射(对应)一个类
数据表中的数据行(记录)对应一个对象
数据表字段对应对象的属性
数据表的操作对应对象的方法
I
08-创建User模型
09-添加用户
10-错误处理
11-拆分中间件(上)
11-拆分中间件(下)错误处理的完善
12-密码加密
bcryptjs
13-注册接口总结
14-验证登录
15-颁发token
起源
说起JWT,我们应该来谈一谈基于token的认证和传统的session认证的区别。
JWT的构成
第一部分我们称它为头部(header),第二部分我们称其为载荷(payload,类似于飞机上承载的物品),第三部分是签证(signature).
base64加密
jswt.sign(playload,signsaft,time)
16-用户认证
17-修改密码
18-路由自动加载
router.use() middle
19-封装管理员权限
20-商品图片上传
koabody设置上传路径 上传 +nodefs
filtes.type..
21-商品图片上传优化(类型判断)
22-集成统一的参数格式校验
koa-parameter@
orm 加 sync force:true 创建表 要记得false
23-发布商品写入数据库
24-修改商品接口
25-硬删除接口
//如果要为 deletedAt 列指定自定义名称
deleteAt:'destroyTime'
sequelize.com.cn/core-concepts/paranoid
26-上下架商品mp4
27-商品列表接口实现
偏执表 分页
0
//2.获取分页的具体数据
(parameter)
const offset =(pageNum-1)*pageSize const rows = await Goods.findAll(f offset:offset,limit:pageSize})
pageSize:any
offset
28-添加到购物车(上)-准备工作
计算登录用户的user_id I如果该用户下的goods_id不存在,新建一条记录如果该用户下的goods_id已经存在,更新数量+1
29-添加到购物车(中)
30-添加到购物车(下)
31-获取购物车列表
32-更新购物车
33-删除购物车
34-全选与全不选
35-添加地址接口(上)
36-添加地址接口(下)
37-获取地址列表
38-更新地址接口
39-删除与设置默认
40-生成订单
41-获取订单列表
42-更新订单状态