这是我们学完 Nest 基础后的第一个实战项目。
功能比较简单:
但是前后端都有,比较完整。
我们通过 json 文件实现了数据的保存,并通过动态模块,实现了在 book 和 user 模块里分别可以指定不同的文件存储路径。
基于 multer 实现了文件上传,并自定义了文件名的格式。
实现了用户模块的登录、注册,图书模块的列表、新增、删除、修改、详情接口。
然后前端部分通过 create-vite 创建项目,用 react-router-dom 实现路由,用 antd 作为组件库,axios 发请求。
对接后端接口实现了登录、注册、图书管理页面。
这样,前后端功能就都实现并打通了。
整体测试下:
先注册个账号:
用这个账号登录:
根据书名搜索图书:
新增图书:
编辑图书:
删除图书:
做完这个小项目,你可能对学的基础知识用在哪就有更具体的了解了。
但其实还有很多优化的点:
- 登录之后怎么保存登录状态?比如有的接口需要登录才能访问,怎么控制?
这需要用 session + cookie 或 jwt 的方式来实现登录状态的保存。
- 数据保存在文件里并不方便,还有啥更好的方式?
保存在 mysql 数据库,用 TypeORM 作为 ORM 框架。
- 后端接口怎么提供 api 文档?
这需要用 swagger
- 文件保存在文件目录下,如果磁盘空间满了怎么办?
可以换用 minio 或者阿里 OSS 等对象存储服务。
- 怎么部署?
前端用 nginx,后端代码用 docker 和 docker compose
- 如何实现验证码?
可以用 nodemailer 发送邮件,然后用 redis 保存验证码数据。
是不是感觉这些东西都没接触过?
这些都是后面要学的知识点。
所以说,这个项目只是对前面一些基础的练习,但是想要做比较完善的项目,还是要学习方方面面的知识的。
接下来的章节我们就开始学习这些知识。