当前位置: 首页 > article >正文

在 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 的一个实例,具体使用可以项目业务进行逻辑调整


http://www.kler.cn/a/233246.html

相关文章:

  • 试编写算法将单链表就地逆置(默认是带头节 点,如果是不带头节点地逆置呢?)
  • 【JavaScript】为 setInterval()定义变量,存储ID
  • 任何使用 Keras 进行迁移学习
  • git配置远程仓库的认证信息
  • 使用 unicorn 和 capstone 库来模拟 ARM Thumb 指令的执行(一)
  • 【Linux】-学习笔记03
  • Ajax+JSON学习二
  • C#,欧拉常数(Euler Constant)的算法与源代码
  • springboot/ssm学生请假管理系统 高校请假审批管理系统Java系统
  • jsp页面,让alert弹出信息换行显示
  • Rust方法自动解引用测试,总结和补充
  • 前端入门:(五)JavaScript 续
  • Oracle篇—logminer日志挖掘恢复误操作数据
  • Vue源码系列讲解——虚拟DOM篇【三】(更新子节点)
  • 华为交换机常用命令
  • [office] excel2003进行可视性加密的方法 #媒体#其他#知识分享
  • 京东微前端框架MicroApp简介
  • 让cgteamwork自动为Houdini载入相机,角色道具的abc文件
  • docker下,容器无法启动,要删除里面的文件
  • vue3 elementplus DateTimePicker 日期时间设置默认时间为当天
  • 跟着cherno手搓游戏引擎【22】CameraController、Resize
  • WordPress突然后台无法管理问题
  • GPT-3 训练自己的数据教程详解
  • 常用数字处理格式校验
  • 【C++跬步积累】—— 构造函数+析构函数
  • ARM交叉编译搭建SSH