Skip to content

Next.js + Prisma

bash
npm install prisma @prisma/client
npx prisma init --datasource-provider mysql
prisma
model Post {
  id        Int      @id @default(autoincrement())
  title     String
  content   String?
  createdAt DateTime @default(now())
}
ts
// lib/prisma.ts — 单例
import { PrismaClient } from '@prisma/client'
const globalForPrisma = globalThis as unknown as { prisma: PrismaClient }
export const prisma = globalForPrisma.prisma || new PrismaClient()
if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma

RSC 中直接用

tsx
// app/posts/page.tsx
import { prisma } from '@/lib/prisma'

export default async function Posts() {
  const posts = await prisma.post.findMany()  // 服务端直接查库
  return posts.map(p => <div key={p.id}>{p.title}</div>)
}