===
自己总是会忘记怎么做,所以记录一下
1、初始化nextjs。。。略
2、安装prisma
- 使用命令
npm i prisma -D安装prisma第三方库 - 使用命令
npx prisma init --datasource-provider sqlite指定初始化的数据库是sqlite,如果要使用别的数据库就对照官网把对应名字改一下,之后会生成prisma对应目录和文件
- 之后在文件中创建Goods模型,然后使用
npx prisma db push来上传到数据库
3、项目中使用数据库
-
然后可以去官网找nextjs中使用Prisma的代码,然后我们放到app下创建一个db.ts文件,将下面代码放入
import { PrismaClient } from '@prisma/client'
const prismaClientSingleton = () => { return new PrismaClient() }
declare global { var prismaGlobal: undefined | ReturnType }
const prisma = globalThis.prismaGlobal ?? prismaClientSingleton()
export default prisma
if (process.env.NODE_ENV !== 'production') globalThis.prismaGlobal = prisma
4、项目中使用prisma
-
在项目的api目录下创建一个goods文件夹,再创建route.ts文件,然后引入db,然后进行orm操作,代码如下
import prisma from '@/db' import { NextRequest, NextResponse } from 'next/server'
const goods = prisma.goods
// 查询数据 export const GET = async () => { const data = await goods.findMany({ orderBy: { createdAt: 'desc' } })
return NextResponse.json({ success: true, errorMessage: '获取数据成功', data })}
// 新增数据 export const POST = async (req: NextRequest) => { const data = await req.json() await goods.create({ data, }) return NextResponse.json({ sucess: true, errorMessage: '创建成功', data: {} }) }