Skip to content

基于当下最强大模型的在线 SVG 生成后端服务,使用 nest.js + fastify + PostgreSQL

License

Notifications You must be signed in to change notification settings

chaseFunny/svg-backend

Repository files navigation

NestJS 10 API 项目模板

使用此模板快速搭建您的下一个 NestJS 10 API 项目

  • 专为 Docker 环境打造(支持 Dockerfile 和环境变量)
  • 支持 Prisma 的 REST API
  • Swagger 文档、Joi 验证、Winston 日志记录等
  • 文件夹结构、代码示例和最佳实践
  • 使用 Fastify 的快速 HTTP 服务器

1. 入门指南

1.1 要求

在开始之前,请确保您的工作站上至少安装了以下组件:

  • 最新版本的 NodeJS,例如 20.x 和 NPM
  • 数据库,例如 PostgreSQL。您可以使用提供的 docker-compose.yml 文件。

Docker 对于高级测试和镜像构建也可能有用,尽管它不是开发所必需的。

1.2 项目配置

首先在您的工作站上克隆此项目,或在 Github 上点击 "使用此模板"

git clone https://github.com/saluki/nestjs-template my-project

接下来是安装项目的所有依赖项。

cd ./my-project
npm install

安装完依赖项后,您现在可以通过创建一个新的 .env 文件来配置您的项目,该文件包含用于开发的环境变量。

cp .env.example .env
vi .env

对于标准的开发配置,您可以保留 Api configuration 部分下的 API_PORTAPI_PREFIXAPI_CORS 的默认值。SWAGGER_ENABLE 规则允许您控制 NestJS 的 Swagger 文档模块。在开始此示例时,请将其保留为 1

接下来是 Prisma 配置:根据您自己的数据库设置更改 DATABASE_URL

最后但同样重要的是,定义一个 JWT_SECRET 来签署 JWT 令牌,或在开发环境中保留默认值。将 JWT_ISSUER 更新为 JWT 中设置的正确值。

1.3 启动和探索

您现在可以使用以下命令启动 NestJS 应用程序。

# 仅在开发环境中使用,执行 Prisma 迁移
npx prisma migrate dev

# 使用 TSNode 启动开发服务器
npm run dev

您现在可以访问 http://localhost:3000/docs 查看您的 API Swagger 文档。示例乘客 API 位于 http://localhost:3000/api/v1/passengers 端点。

对于受限路由,您可以使用以下 JWT 进行测试

eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJERUZBVUxUX0lTU1VFUiIsImlhdCI6MTYzMTEwNDMzNCwicm9sZSI6InJlc3RyaWN0ZWQifQ.o2HcQBBpx-EJMcUFiqmAiD_jZ5J92gRDOyhybT9FakE

上面的示例 JWT 没有过期时间,请记住在生产环境中使用有效的 JWT 并强制执行所需的声明

2. 项目结构

此模板采用明确定义的目录结构。

src/
├── modules
│   ├── app.module.ts
│   ├── common/  # 公共模块包含在整个应用程序中使用的管道、守卫、服务和提供者
│   ├── passenger/  # 管理“乘客”资源的模块示例
│   │   ├── controller/
│   │   │   └── passenger.controller.ts
│   │   ├── flow/  # “flow”目录包含管道、拦截器以及可能更改请求或响应流的所有内容
│   │   │   └── passenger.pipe.ts
│   │   ├── model/
│   │   │   ├── passenger.data.ts  # 将在响应中返回的模型
│   │   │   └── passenger.input.ts  # 在请求中使用的模型
│   │   ├── passenger.module.ts
│   │   ├── service/
│   │   │   └── passenger.service.ts
│   │   └── spec/
│   └── tokens.ts
└── server.ts

3. 默认 NPM 命令

以下 NPM 命令已包含在此模板中,可用于快速运行、构建和测试您的项目。

# 使用转译后的 NodeJS 启动应用程序
npm run start

# 使用 "ts-node" 运行应用程序
npm run dev

# 转译 TypeScript 文件
npm run build

# 运行项目的功能测试
npm run test

# 使用 TSLint 对项目文件进行 lint 检查
npm run lint

5. 健康检查支持

健康检查 API 是一个 REST 端点,可用于验证服务及其依赖项的状态。健康检查 API 端点内部触发服务的整体健康检查。这可以包括数据库连接检查、系统属性、磁盘可用性和内存可用性。

可以使用 HEALTH_TOKEN 环境变量中的令牌请求示例健康检查端点。

curl -H 'Authorization: Bearer ThisMustBeChanged' http://localhost:3000/api/v1/health

6. 项目目标

该项目的目标是提供一个干净且最新的“入门包”,用于使用 NestJS 构建的 REST API 项目。

7. 贡献

欢迎提出改进建议、报告错误或提出问题:https://github.com/saluki/nestjs-template/issues

About

基于当下最强大模型的在线 SVG 生成后端服务,使用 nest.js + fastify + PostgreSQL

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published