Skip to content

这是我们学完 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 保存验证码数据。

是不是感觉这些东西都没接触过?

这些都是后面要学的知识点。

所以说,这个项目只是对前面一些基础的练习,但是想要做比较完善的项目,还是要学习方方面面的知识的。

接下来的章节我们就开始学习这些知识。