欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > Prisma ORM 第一章 安装与使用

Prisma ORM 第一章 安装与使用

2024/10/23 23:24:14 来源:https://blog.csdn.net/YUELEI118/article/details/143031356  浏览:    关键词:Prisma ORM 第一章 安装与使用

Prisma 中文文档

express + ts

1. 配置prisma(读音:普锐斯吗)

1. 安装

mkdir hello-prisma
cd hello-prisma
npm init -y
npm install prisma typescript ts-node @types/node --save-dev
pnpm init
pnpm add prisma typescript ts-node @types/node --save-dev

2. 创建tsconfig.json文件

{"compilerOptions": {"sourceMap": true,"outDir": "dist","strict": true,"lib": ["esnext"],"esModuleInterop": true}
}

3. 初始化prisma项目

npx prisma
npx prisma init
# 创建了一个名为prisma的新目录,其中包含一个名为schema.prisma的文件和一个位于项目根目录中的.env文件
  • 此时的目录结构
    在这里插入图片描述

4. 配置数据库

  • prisma/schema.prisma
datasource db {provider = "mysql"	// 使用mysql的需要修改url      = env("DATABASE_URL")
}
  • .env
DATABASE_URL="mysql://johndoe:randompassword@localhost:3306/mydb"
DATABASE_URL="mysql://用户名:密码@数据库地址:3306/库名"

5. vscode安装插件

在这里插入图片描述
在这里插入图片描述

2. 使用prisma

1. 数据模型映射到数据库

  • prisma/schema.prisma 添加表数据
model Post {  // 著作id        Int      @id @default(autoincrement())createdAt DateTime @default(now())updatedAt DateTime @updatedAttitle     String   @db.VarChar(255)content   String?published Boolean  @default(false)author    User     @relation(fields: [authorId], references: [id])  // 外键authorId  Int // 关联id
}model Profile { // 个人简介id     Int     @id @default(autoincrement())bio    String?user   User    @relation(fields: [userId], references: [id])userId Int     @unique
}model User {  // 作者id      Int      @id @default(autoincrement())email   String   @uniquename    String?posts   Post[]  // 一对多profile Profile?  // 一对一
}
  • 数据模型映射到数据库
npx prisma migrate dev --name [init:自己起个名字]
  • 目录结构
    在这里插入图片描述
  • 数据库生成对应的表
    在这里插入图片描述

2. 使用express

  1. 安装express
pnpm add express
# express报错,安装express类型声明
pnpm add @types/express
  1. 安装@prisma/client
pnpm add @prisma/client
# pnpm 安装 @prisma/client,好像不会自动调用 prisma generate 
npx prisma generate
  1. 创建 src/app.ts文件
import express from "express";import { PrismaClient } from "@prisma/client";
const app = express();
const prisma = new PrismaClient();
app.use(express.json());const port = 3000;app.listen(port, () => {console.log(`Server is running on port ${port}`);
});
  1. 运行express
nodemon src/app.ts
# 如果没有nodemon,全局安装
pnpm i nodemon -g
  • 遇到的报错
# 如果报错:throw new Error('@prisma/client did not initialize yet. Please run "prisma generate" and try to import it again.');
npx prisma generate
  • 遇到的错误(不要修改package.json中的type=model):
    • 解决办法 : 链接
TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts"

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com