NestJS Prisma Starter 项目教程
1. 项目介绍
NestJS Prisma Starter 是一个基于 NestJS 和 Prisma 的快速启动模板,旨在帮助开发者快速搭建一个包含 GraphQL、Prisma Client、Passport-JWT 认证、Swagger API 文档和 Docker 支持的 NestJS 应用。该项目提供了一个完整的开发环境,开发者可以基于此模板进行快速开发和部署。
2. 项目快速启动
2.1 安装依赖
首先,安装 NestJS CLI 工具以启动和生成 CRUD 资源:
# 使用 npm
npm i -g @nestjs/cli
# 使用 yarn
yarn add -g @nestjs/cli
然后,安装项目依赖:
# 使用 npm
npm install
# 使用 yarn
yarn install
2.2 配置 PostgreSQL 数据库
使用 Docker 启动 PostgreSQL 数据库:
# 复制 .env.example 并重命名为 .env
cp .env.example .env
# 启动 PostgreSQL 数据库
docker-compose -f docker-compose.db.yml up -d
# 或者使用 npm 脚本
npm run docker:db
2.3 使用 Prisma Migrate
Prisma Migrate 用于管理数据库模式和迁移。首先,确保 .env
文件中包含 DATABASE_URL
环境变量。然后,运行以下命令创建迁移并更新数据库模式:
npx prisma migrate dev
# 或者使用 npm 脚本
npm run migrate:dev
2.4 生成 Prisma Client
每次更新 schema.prisma
文件后,重新生成 Prisma Client:
npx prisma generate
# 或者使用 npm 脚本
npm run prisma:generate
2.5 启动 NestJS 服务器
在开发模式下启动 NestJS 服务器:
npm run start:dev
在生产模式下启动 NestJS 服务器:
npm run start:prod
启动后,GraphQL Playground 可在 http://localhost:3000/graphql
访问。
3. 应用案例和最佳实践
3.1 使用 GraphQL 进行数据查询
在 GraphQL Playground 中,可以使用以下示例查询获取用户数据:
query {
getUser(id: "1") {
id
name
email
}
}
3.2 使用 JWT 进行身份验证
通过登录或注册获取 JWT 令牌,并在 GraphQL Playground 的 HTTP HEADERS 中添加:
{
"Authorization": "Bearer YOURTOKEN"
}
3.3 使用 Swagger 进行 API 文档管理
NestJS Prisma Starter 集成了 Swagger,可以在 http://localhost:3000/api
访问 RESTful API 文档。
4. 典型生态项目
4.1 Prisma
Prisma 是一个现代化的数据库工具,提供了类型安全的 ORM 和数据库迁移功能。NestJS Prisma Starter 集成了 Prisma,开发者可以轻松管理数据库模式和数据访问。
4.2 GraphQL
GraphQL 是一种用于 API 的查询语言,NestJS Prisma Starter 使用 GraphQL 提供了强大的数据查询和操作能力。
4.3 Docker
Docker 用于容器化应用,NestJS Prisma Starter 提供了 Docker 支持,开发者可以轻松构建和部署应用。
4.4 Swagger
Swagger 用于生成和展示 RESTful API 文档,NestJS Prisma Starter 集成了 Swagger,开发者可以方便地管理和查看 API 文档。
通过以上模块的介绍和快速启动指南,开发者可以快速上手并使用 NestJS Prisma Starter 项目进行开发。