Prisma(一)——基础

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

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()
      

学习资料

prisma官网

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值