在 Next 中, ORM 框架 Prisma 使用

Prisma 介绍

Prisma 是一个 ORM 框架,主要用于 Node.js 或 TypeScript 作为后端开发的应用,主要有三部分组成:

  • Prisma Client:自动生成且类型安全的查询构建器,适用于 Nodex.js 和 TS;
  • Prisma Migrate: 迁移系统,当项目 Model 结果或字段发生变化后,可以将数据自动映射到 DB ,进行对应更新
  • Prisma Studio GUI 界面,用于查看和编辑 DB 中的数据

日常开发中最常用 为 Prisma Client ,Prisma 支持关系型数据库如MySQL、PostgreSQL,及非关系型数据库 MongoDB 等

Prisma 使用
1,安装 Prisam 命令行
npm install prisma --save-dev
2,prisma 初始化

2.1,借助 Prisma CLI 的 init 命令配置 Prisma ,进行初始化;在 t项目根目录文件夹下,输入以下命令

npx prisma init --datasource-provider mongodb

这里将 mongo 作为配置的 DB 数据库;命令执行后,程序将会自动生成一个 prisma 文件夹,在 prisma 文件夹下会有一个 schema.prisma 文件用将 MongoDB 配置为项目的 DB

// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema

generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "mongodb"
  url      = env("DATABASE_URL")
} 

2.2,创建一个 .env 文件,将 mongodb 的链接地址赋值给 DATABASE_URL 环境变量,如下

DATABASE_URL="mongodb://root:example@localhost:27017/db_next?authSource=admin"

2.3 在 schema.prisma 文件中,定义应用中需要用到 Model ,如下:

model Post {
  id     String @id @default(auto()) @map("_id") @db.ObjectId
  title  String
  userId String @db.ObjectId
  user   User   @relation(fields: [userId], references: [id])
}

model User {
  id    String @id @default(auto()) @map("_id") @db.ObjectId
  email String
  posts Post[]
}

2.4,执行 npm install @prisma/client ,安装 @prisma/client

2.5,调用 npx prisma generate 更新一个新的版本Prisma Client 用于当前模型
在这里插入图片描述

3,借助 Prisma Client 创建 Query 语句,进行数据 读写;

为了测试 Prisma Client 连通性,可以创建一个 ts 脚本,分别执行以下代码,查看终端运行结果

// lib/index.ts 文件


const prisma = new PrismaClient()

// 读操作
async function main() {
    // 下入客户端
    const allUsers = await prisma.user.findMany()
    console.log('result is ', allUsers)
}

main()
    .catch(async (e) => {
        console.error(e)
        console.log('报错error is ', e)
    })
    .finally(async () => {
        // 关闭 prisma 客户端
        await prisma.$disconnect()

    })

输入以下命令用于执行脚本

npx ts-node .\lib\index.ts


## ouput
result is  []

由结果可以看到,prisma client 已经可以成功连接到 mongodb,并且查询到目前的 用户数据(user) 为空,此脚本只是用 prisma 操作 mongodb 的一个实例,具体使用可以项目业务进行逻辑调整

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员大飞1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值