返回
从React+SpringBoot到Egg.js,重构个人博客接口的实践与思考
前端
2024-01-09 10:13:49
前言
之前使用React全家桶和Java的SpringBoot重构了自己的个人博客,虽然做出来了,但是还是初成版,自我感觉还是存在很多问题。由于对Java不是完全熟悉,所以写出来的接口可能有些瑕疵,所以最近学习了eggjs,使用了egg重写了后台接口。 数据库设计跟之前的也略有不同,差异主要体现在数据表的优化和索引的添加上。
数据库设计
表名 | 字段 | 数据类型 | 约束 | 注释 |
---|---|---|---|---|
posts | id | int(11) | 主键,自增 | 文章ID |
posts | title | varchar(255) | 非空 | 文章标题 |
posts | content | text | 非空 | 文章内容 |
posts | author | int(11) | 非空 | 作者ID |
posts | create_time | datetime | 非空 | 创建时间 |
posts | update_time | datetime | 非空 | 更新时间 |
categories | id | int(11) | 主键,自增 | 分类ID |
categories | name | varchar(255) | 非空 | 分类名称 |
posts_categories | post_id | int(11) | 非空 | 文章ID |
posts_categories | category_id | int(11) | 非空 | 分类ID |
users | id | int(11) | 主键,自增 | 用户ID |
users | username | varchar(255) | 非空 | 用户名 |
users | password | varchar(255) | 非空 | 密码 |
users | varchar(255) | 非空 | 邮箱 | |
users | role | int(11) | 非空 | 角色ID |
接口实现
使用Egg.js框架重构的个人博客接口主要包括以下几个部分:
- 文章接口: 提供文章的增、删、改、查操作。
- 分类接口: 提供分类的增、删、改、查操作。
- 用户接口: 提供用户的增、删、改、查操作。
- 登录接口: 提供用户登录功能。
- 注册接口: 提供用户注册功能。
技术选型
在技术选型方面,我选择了以下技术:
- 前端框架: React
- 后端框架: Egg.js
- 数据库: MySQL
- 云服务: 阿里云ECS
性能优化
为了提高接口的性能,我做了以下优化:
- 使用缓存: 使用Redis缓存来缓存文章和分类数据,以减少数据库查询的次数。
- 使用索引: 在数据库表中添加了索引,以提高查询速度。
- 优化SQL语句: 对SQL语句进行了优化,以减少查询时间。
- 使用CDN: 使用CDN来加速静态文件的加载速度。
使用体验
使用Egg.js重构的个人博客接口,总体上来说还是比较满意的。接口的性能有了很大的提升,而且代码也更加简洁。使用体验也更加流畅,后台功能更加完善。
总结
通过这次重构,我对Egg.js有了更深入的了解,也对博客接口的设计和实现有了更多的思考。我相信,随着我对Egg.js的深入学习,我能够进一步优化博客接口,使其更加高效和稳定。