next.js如何优雅的使用prisma

1,044 阅读2分钟

Next.js

本次使用的next项目的版本为 14.2.1 , 使用的全新路由 App Router 交互 前端路由next项目自动化路由,只需在 app 下新建文件夹,然后文件夹下新建 page.tsx 或者 page.jsx 官网地址:Next.js v14.2.1 文档


  • next.js专门为构建高效、动态的服务器端渲染(SSR)或静态生成(SSG)的 React 应用程序而设计
  • Next.js 是一个用于构建全栈 Web 应用程序的 React 框架。您可以使用 React 组件来构建用户界面,并Next.js其他功能和优化
  • 在后台,Next.js 还抽象并自动配置 React 所需的工具,例如捆绑、编译等。这使您可以专注于构建应用程序,而不是花时间进行配置
  • 无论您是个人开发人员还是大型团队的一员,Next.js 都可以帮助您构建交互式、动态且快速的 React 应用程序

  1. 使用官方脚手架 create-next-app 创建一个项目

node版本需要 18.17 及以上,运行下面命令,会提示输入项目名称,选择是否TS...等

npx create-next-app@latest
  1. 运行项目、查看 http://localhost:3000
npm run dev
  1. 编辑(或)文件并保存它以在浏览器中查看更新的结果

app/page.tsxpages/index.tsx

Prisma

Prisma 是一个现代的开源 ORM(对象关系映射)工具和数据库访问引擎,专为 TypeScriptJavaScript 开发者设计,用于简化与数据库的交互 对于前端不会 sql 语句的非常友好 (尤其是对于笔者这种不会sql的,简直不要太舒服) Prisma Documentation

  1. next.js 项目中安装 prisma
npm install prisma --save-dev
  1. 使用 Prisma CLI 的命令设置 Prisma ORMinit

这将创建一个包含 Prisma 架构文件的新目录,并将 mysql 配置为数据库。

npx prisma init --datasource-provider mysql
  1. 修改 env 文件,改成自己数据库账号密码以及地址
DATABASE_URL="postgresql://johndoe:randompassword@localhost:5432/mydb?schema=public"
  1. Prisma 架构中对数据表结构进行建模

prisma 目录下的 schema.prisma 文件添加模型(模型和数据库结构一致)

model Category {
  id    Int     @id @default(autoincrement())
  tagName String
  cTime  DateTime?
  uTime  DateTime?
  disabled Int?
  
  @@map("category") // 表名---使用 @map() 重新映射为了下划线命名,使用时候只需要 category 即可
}
  1. 保存并运行schema.prisma (这个文件夹有更新都需要重新运行一遍这个命令)
npx prisma generate
  1. next 项目根目录下创建 pages\api 文件夹里面新建一个 category.ts 会自动生成一个 /api/category 接口
import { PrismaClient } from '@prisma/client';
import { NextApiRequest, NextApiResponse } from 'next';

const prisma = new PrismaClient();

export default async function fetchSomeData(req: NextApiRequest, res: NextApiResponse) {
  const data = await prisma.category.findMany()
  res.status(200).json({ code: 200, data })
}
  1. 浏览器访问一下 http://localhost:3000/api/category 数据库对应的数据就来了

以上就是 nextprisma 简单的入门