以下代码均为nuxt3项目中运行
一、初始化
依次执行
npm install prisma typescript ts-node @types/node --save-dev
tsconfig.json
添加配置
{
"compilerOptions": {
"sourceMap": true,
"outDir": "dist",
"strict": true,
"lib": ["esnext"],
"esModuleInterop": true
}
}
依次执行
npx prisma
npx prisma init
二、修改配置
- 将.env文件中的DATABASE_URL设置为指向现有数据库(修改.env文件中的DATABASE_URL);
- 修改schema.prisma文件中的datasource下的provider(有下列选项);
postgresql, mysql, sqlite, sqlserver, mongodb , cockroachdb
三、创建数据库表
这是官网的示例
model Post {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
title String @db.VarChar(255)
content String?
published Boolean @default(false)
author User @relation(fields: [authorId], references: [id])
authorId Int
}
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 @unique
name String?
posts Post[]
profile Profile?
}
向schema.prisma添加modal 执行npx prisma migrate dev --name init
之后,终端会显示Your database is now in sync with your schema.
运行以下命令来检查数据库:
$npx prisma db pull
这个命令读取.env
中定义的DATABASE_URL
环境变量。并连接到数据库。一旦建立了连接,它就会对数据库进行内省(即读取数据库模式)。然后将数据库模式从SQL转换为Prisma数据模型
四、安装Prisma客户端
npm install @prisma/client
五、查询数据库
在server/api中新增getUserInfo.ts文件
import { PrismaClient } from "@prisma/client";
const prisma = new PrismaClient();
const getFindMany = async () => {
return await prisma.user.findMany();
};
export default defineEventHandler(async (event) => {
try {
const data = await getFindMany();
return {
code: 200,
data,
};
} catch (error) {
console.error(error);
return sendError(event, createError("Failed to retrieve data!"));
}
});
页面中调用
$fetch("/api/getUserInfo", {
method: "get",
});