做视频网站视频文件都存放在哪,室内设计网站平台,国家住房与城乡建设部网站,微信朋友圈广告代理Prisma 介绍
Prisma 是一个 ORM 框架#xff0c;主要用于 Node.js 或 TypeScript 作为后端开发的应用#xff0c;主要有三部分组成#xff1a;
Prisma Client#xff1a;自动生成且类型安全的查询构建器#xff0c;适用于 Nodex.js 和 TS#xff1b;Prisma Migrate: 迁…Prisma 介绍
Prisma 是一个 ORM 框架主要用于 Node.js 或 TypeScript 作为后端开发的应用主要有三部分组成
Prisma Client自动生成且类型安全的查询构建器适用于 Nodex.js 和 TSPrisma Migrate: 迁移系统当项目 Model 结果或字段发生变化后可以将数据自动映射到 DB 进行对应更新Prisma Studio GUI 界面用于查看和编辑 DB 中的数据
日常开发中最常用 为 Prisma Client Prisma 支持关系型数据库如MySQL、PostgreSQL及非关系型数据库 MongoDB 等
Prisma 使用
1安装 Prisam 命令行
npm install prisma --save-dev2prisma 初始化
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-schemagenerator client {provider prisma-client-js
}datasource db {provider mongodburl env(DATABASE_URL)
} 2.2创建一个 .env 文件将 mongodb 的链接地址赋值给 DATABASE_URL 环境变量如下
DATABASE_URLmongodb://root:examplelocalhost:27017/db_next?authSourceadmin2.3 在 schema.prisma 文件中定义应用中需要用到 Model 如下
model Post {id String id default(auto()) map(_id) db.ObjectIdtitle StringuserId String db.ObjectIduser User relation(fields: [userId], references: [id])
}model User {id String id default(auto()) map(_id) db.ObjectIdemail Stringposts 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 的一个实例具体使用可以项目业务进行逻辑调整