https://github.com/chasefunny/svg-backend
基于当下最强大模型的在线 SVG 生成后端服务,使用 nest.js + fastify + PostgreSQL
https://github.com/chasefunny/svg-backend
ai claude-ai fastify nestjs postgresql
Last synced: 3 months ago
JSON representation
基于当下最强大模型的在线 SVG 生成后端服务,使用 nest.js + fastify + PostgreSQL
- Host: GitHub
- URL: https://github.com/chasefunny/svg-backend
- Owner: chaseFunny
- License: mit
- Created: 2025-03-13T00:28:16.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-03-21T13:53:56.000Z (3 months ago)
- Last Synced: 2025-03-21T15:02:15.024Z (3 months ago)
- Topics: ai, claude-ai, fastify, nestjs, postgresql
- Language: TypeScript
- Homepage: https://svgshow.cn/
- Size: 132 KB
- Stars: 12
- Watchers: 1
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# NestJS 10 API 项目模板
使用此模板快速搭建您的下一个 [NestJS 10](https://nestjs.com/) API 项目
- 专为 Docker 环境打造(支持 Dockerfile 和环境变量)
- 支持 [Prisma](https://www.prisma.io/) 的 REST API
- Swagger 文档、[Joi](https://github.com/hapijs/joi) 验证、Winston 日志记录等
- 文件夹结构、代码示例和最佳实践
- 使用 [Fastify](https://fastify.dev/) 的快速 HTTP 服务器## 1. 入门指南
### 1.1 要求
在开始之前,请确保您的工作站上至少安装了以下组件:
- 最新版本的 [NodeJS](https://nodejs.org/),例如 20.x 和 NPM
- 数据库,例如 PostgreSQL。您可以使用提供的 `docker-compose.yml` 文件。[Docker](https://www.docker.com/) 对于高级测试和镜像构建也可能有用,尽管它不是开发所必需的。
### 1.2 项目配置
首先在您的工作站上克隆此项目,或在 Github 上点击 ["使用此模板"](https://github.com/new?template_name=nestjs-template&template_owner=Saluki)。
```sh
git clone https://github.com/saluki/nestjs-template my-project
```接下来是安装项目的所有依赖项。
```sh
cd ./my-project
npm install
```安装完依赖项后,您现在可以通过创建一个新的 `.env` 文件来配置您的项目,该文件包含用于开发的环境变量。
```sh
cp .env.example .env
vi .env
```对于标准的开发配置,您可以保留 `Api configuration` 部分下的 `API_PORT`、`API_PREFIX` 和 `API_CORS` 的默认值。`SWAGGER_ENABLE` 规则允许您控制 NestJS 的 Swagger 文档模块。在开始此示例时,请将其保留为 `1`。
接下来是 Prisma 配置:根据您自己的数据库设置更改 `DATABASE_URL`。
最后但同样重要的是,定义一个 `JWT_SECRET` 来签署 JWT 令牌,或在开发环境中保留默认值。将 `JWT_ISSUER` 更新为 JWT 中设置的正确值。
### 1.3 启动和探索
您现在可以使用以下命令启动 NestJS 应用程序。
```sh
# 仅在开发环境中使用,执行 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. 项目结构
此模板采用明确定义的目录结构。
```sh
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 命令已包含在此模板中,可用于快速运行、构建和测试您的项目。
```sh
# 使用转译后的 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` 环境变量中的令牌请求示例健康检查端点。
```sh
curl -H 'Authorization: Bearer ThisMustBeChanged' http://localhost:3000/api/v1/health
```## 6. 项目目标
该项目的目标是提供一个干净且最新的“入门包”,用于使用 NestJS 构建的 REST API 项目。
## 7. 贡献
欢迎提出改进建议、报告错误或提出问题:[https://github.com/saluki/nestjs-template/issues](https://github.com/saluki/nestjs-template/issues)