记录一下Nextjs+Prisma过程

389 阅读1分钟

===

自己总是会忘记怎么做,所以记录一下

1、初始化nextjs。。。略

2、安装prisma

  1. 使用命令 npm i prisma -D安装prisma第三方库
  2. 使用命令 npx prisma init --datasource-provider sqlite指定初始化的数据库是sqlite,如果要使用别的数据库就对照官网把对应名字改一下,之后会生成prisma对应目录和文件

  1. 之后在文件中创建Goods模型,然后使用 npx prisma db push来上传到数据库

3、项目中使用数据库

  1. 然后可以去官网找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

  1. 在项目的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: {} }) }