Skip to content

appnify/starter-nest

Repository files navigation

介绍

一个NestJS起始模板,正在优化中。

功能

  • Swagger接口文档
  • 邮件发送功能(SMTP)
  • 统一参数校验
  • 统一异常拦截
  • 统一响应结构
  • 统一参数序列化
  • 数据库功能(支持多配置)
  • 数据库分页/条件/全部查询
  • 静态页面
  • 文件上传
  • 文件下载
  • Redis或内存缓存
  • 日志输出到控制台/文件
  • 统一配置/环境变量服务(类型安全且带默认值)
  • 模块/控制器/服务基类
  • 模板快速生成(业务型模板,非NestJS脚手架的模板)

模块

  • 用户模块
  • 登陆模块
  • 角色模块
  • 权限模块
  • 上传模块
  • 文章模块

部署

目前基于 Gitea 和 Gitea Actions 实现,大致流程是这样的:提交代码到 Gitea 仓库后,触发流水线任务进行构建并打包成 Docker 镜像,推送到 Gitea 自带的软件包仓库,然后登陆生产服务器执行更新命令。

使用 Github Actions 也是可以的,两者使用上是兼容的。本仓库有关部署的内容涉及三个地方,不需要的话可自行删除,如下:

  • Dockerfile 构建镜像的配置文件
  • .dockerignore 配置哪些文件应该被忽略掉
  • .gitea/workflows/depoy.yaml 流水线任务的配置文件,语法上与 Github Actions 一致

计划

  • 双token无感刷新
  • session/cookie,jwt,sso单点登陆
  • 大文件上传,断点续传

笔记

  • createUserDto与User分开
  • 涉及关系时,先用 service 查出有效关系,避免存储不存在的关联ID

最后

如果你在使用过程中遇到问题,欢迎在 Issue 中提问。