What Prisma
Prisma是一个基于Nodejs的能够 快速
构建Graphql API服务的后端框架(快速构建API查询语言服务的后端框架)。
-
连接任何数据库和任何前端应用
目前支持的比较成熟的数据库包括MySQL、PostgreSQL和MongoDB。
- With a new database
- With an existing database
-
自动生成代码
-
快速搭建出生产环境级别的后端服务
目前已全面支持JavaScript、TypeScript、Go语言。
-
兼容express框架
-
Prisma是一个数据库抽象层,可以将数据库转换为带有CRUD操作和实时功能的GraphQL API。它是数据库和GraphQL服务器之间的粘合剂。一图胜千言👇👇👇
Why Prisma
- 零基础
- 通过自定义和自动生成的Prisma客户端实现类型安全的数据库访问
- 简单的数据库工作流程
- 数据库的实时层
Prisma为每个受支持的数据库提供一个实时API,可以订阅任何数据库事件,例如创建,更新或删除数据。
- 简单而强大的API
- 使用Prisma Admin进行可视化数据管理
How Prisma works
-
With a new database
-
With an existing database
大概了解完工作原理后我们先从Set up Prisma
开始讲解吧。👇👇👇(以新数据库为例——With a new database)
Get Started
❣️安装
-
npm 或 yarn 安装,国内推荐使用 cnpm:
# 没有cnpm请先安装:npm i -g cnpm cnpm i -g prisma # or yarn global add prisma
安装后用
prisma -v
检查是否安装成功。 -
mac 用户也可选择使用 brew 安装:
brew tap prisma/prisma brew install prisma
❣️ 构建Prisma服务
如何使用Prisma对数据库生成GraphQL API(连接数据库和Prisma)❓使用prisma init
构建Prisma服务,具体步骤如下:
-
prisma init sharePrisma(此命令执行完后终端会有提示进行相关操作----3步)
-
三步走
-
进入项目:
cd 项目名
-
启动
prisma
和连接的数据库:docker-compose up -d
-
部署prisma:
prisma deploy
-
-
目录
-
目录详解
- prisma.yml:服务的根配置文件,包含有关服务的信息
- datamodel.prisma:定义数据模型的文件
- docker-compose.yml: 配置Prisma并指定它可以连接的数据库。
现在,API
已被部署,但我们怎么知道如何与它交互?它的API
实际上是什么样的?
❣️使用GraphQL Playground查看API
![](https://i-blog.csdnimg.cn/blog_migrate/86e993921669d957e4a5cd10a94c95c5.png)
Prisma 🔱 Mongoose
-
获取单个对象
-
Mongoose中
const user = await findById(id)
-
Prisma❓
const user = await prisma.user({ id })
-
-
表关联
-
Mongoose中
const userWithPosts = await User.findById(id).populate('posts')
-
Prisma❓
const postsByUser = await prisma.user({ id }).posts()
-