Prisma ORM
在 Midway Hooks 中,我们推荐使用 Prisma 来构建数据库,并实现我们静态类型安全的目标。
Prsima 是面向 Node.js & TypeScript 设计的 ORM,它提供了一系列友好的功能(Schema 定义、客户端生成、完全的 TypeScript 支持),可以帮助用户快速构建应用。
Example
我们提供了一个简单的例子 hooks-prisma-starter,来演示在 Midway Hooks 如何使用 Prisma。
下面我也会简单介绍,Midway Hooks 配合 Prisma 开发应用会有多么的简单。
数据库 Schema
例子基于 sqlite,数据库 Schema 如下:
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
posts Post[]
}
model Post {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
title String
content String?
published Boolean @default(false)
viewCount Int @default(0)
author User? @relation(fields: [authorId], references: [id])
authorId Int?
}
具体的数据库设置 & 初始数据填充工作,参考 hooks-prisma-starter 文档即可。
初始化 Prisma
在项目的 src/api 下新建 prisma 文件,使用如下代码即可初始化 Client。
import { PrismaClient } from '@prisma/client';
export const prisma =
new PrismaClient();
使用代理镜像
Prisma 在安装时会根据平台动态下载可执行文件,如果你的网络环境不好,可以通过环境变量来设置镜像。
PRISMA_ENGINES_MIRROR=https://registry.npmmirror.com/-/binary/prisma/
相关 Issue: mirror prisma