nodejs 使用prisma 操作数据库
访问量: 708
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 }