Back

nodejs 使用prisma 操作数据库

发布时间: 2022-04-09 07:14:00

refer to: https://www.prisma.io/docs/getting-started/setup-prisma/add-to-existing-project/relational-databases-typescript-postgres

1. 安装 node module: 

npm install prisma --save-dev

2. 创建对应的配置文件

npx prisma init

它会生成  prisma/schema.prisma

3. 修改配置文件:

.env 

export DATABASE_URL="postgresql://janedoe:janedoe@localhost:5432/janedoe?schema=hello-prisma"

4. npx prisma db pull

会自动更新 上面的schema.prisma 文件, 获得各种表的信息等

5. npm install @prisma/client

npx prisma generate  ( 生成本地的一系列方法,查询啊更新啊啥的)

注意: 每次修改数据库之后,都要运行这2个命令:  npx prisma db pull && npx prisma generate

6. 使用

7 import { PrismaClient } from '@prisma/client'
8 const prisma = new PrismaClient()

397 let prereg = await prisma.domains.findFirst({ where: { address: address } })
398 let claim_record = await prisma.claims.findFirst( where: { address: address })
399
400 console.log("== prereg", prereg);
401 console.log("== claim_record", claim_record);

注意:

findUnique ... where 对应的方法定义在 node_modules/.prisma/client/index.d.ts
findFirst同上.

由于typescript是需要先把方法做个定义的,所以我们可以看到 index.d.ts 生成的内容.

# 这个对应 .findMany,  findFirst 
7090   export type domainsWhereInput = {
7091     AND?: Enumerable
7092     OR?: Enumerable
7093     NOT?: Enumerable
7094     id?: BigIntFilter | bigint | number
7095     name?: StringNullableFilter | string | null
7096     address?: StringNullableFilter | string | null
7097     created_at?: DateTimeFilter | Date | string
7098     updated_at?: DateTimeFilter | Date | string
7099   }
# 这个对应 .findUnique 方法
7109   export type domainsWhereUniqueInput = {
7110     id?: bigint | number
7111   }

Back