GraphQL Prisma TypeScript 项目教程
1. 项目的目录结构及介绍
graphql-prisma-typescript/
├── prisma/
│ ├── schema.prisma
│ └── migrations/
├── src/
│ ├── index.ts
│ ├── resolvers/
│ │ ├── Query.ts
│ │ └── Mutation.ts
│ ├── types/
│ │ └── index.ts
│ └── utils/
│ └── index.ts
├── .env
├── .gitignore
├── package.json
├── tsconfig.json
└── README.md
目录结构介绍
-
prisma/: 包含 Prisma 的配置文件和迁移脚本。
- schema.prisma: Prisma 的数据库模式定义文件。
- migrations/: 包含数据库迁移脚本。
-
src/: 项目的源代码目录。
- index.ts: 项目的入口文件。
- resolvers/: 包含 GraphQL 解析器的实现。
- Query.ts: 定义查询操作的解析器。
- Mutation.ts: 定义变更操作的解析器。
- types/: 包含 TypeScript 类型定义。
- utils/: 包含项目中使用的工具函数。
-
.env: 环境变量配置文件。
-
.gitignore: Git 忽略文件配置。
-
package.json: 项目的依赖和脚本配置。
-
tsconfig.json: TypeScript 配置文件。
-
README.md: 项目的说明文档。
2. 项目的启动文件介绍
src/index.ts
import { ApolloServer } from 'apollo-server';
import { PrismaClient } from '@prisma/client';
import { typeDefs } from './types';
import { resolvers } from './resolvers';
const prisma = new PrismaClient();
const server = new ApolloServer({
typeDefs,
resolvers,
context: { prisma },
});
server.listen().then(({ url }) => {
console.log(`🚀 Server ready at ${url}`);
});
启动文件介绍
- ApolloServer: 使用
apollo-server
创建 GraphQL 服务器。 - PrismaClient: 初始化 Prisma 客户端,用于数据库操作。
- typeDefs: 导入 GraphQL 类型定义。
- resolvers: 导入 GraphQL 解析器。
- context: 将 Prisma 客户端传递给解析器上下文。
- server.listen(): 启动服务器并输出服务器地址。
3. 项目的配置文件介绍
.env
DATABASE_URL="postgresql://user:password@localhost:5432/mydb?schema=public"
配置文件介绍
- DATABASE_URL: 数据库连接字符串,用于 Prisma 连接数据库。
tsconfig.json
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"outDir": "./dist"
},
"include": ["src/**/*"]
}
TypeScript 配置文件介绍
- target: 指定编译目标为 ES5。
- module: 使用 CommonJS 模块系统。
- strict: 启用所有严格类型检查选项。
- esModuleInterop: 启用 ES 模块互操作性。
- skipLibCheck: 跳过库文件的类型检查。
- forceConsistentCasingInFileNames: 强制文件名大小写一致。
- outDir: 指定编译输出目录为
dist
。 - include: 指定包含的源文件路径。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考