为什么我认为Prisma是无与伦比的。
#javascript #node #prisma

在我作为全堆栈开发人员的整个Nodejs旅程中,我一直在与许多ORMS和查询构建者联系,处理数据库始终是我的真正痛苦,尤其是当大多数Orms的实际工具不是足够清晰。

现在已经将近一年了,我一直在使用我认为是Prisma的最佳ORM。这是我见过的数据库操作的最完整的工具之一,我将列出一些有关它的内容,并希望鼓励人们尝试一下。

用代码对数据库进行建模

prisma使用架构文件来定义数据库,因此您可以从中写出整个数据库,而无需使用某种类似类或装饰器的抽象,只有一个简单的“模型”,Prisma可以生成数据库轻松。它还可以读取您已经构建的数据库,并从中提取模型,构建与数据库匹配的架构文件。

一个例子就是这样:

   model User {
     id    Int     @id @default(autoincrement())
    email String  @unique
    name  String?
    posts Post[]
  }

  model Post {
   id        Int     @id @default(autoincrement())
   title     String
   content   String?
   published Boolean @default(false)
   author    User    @relation(fields: [authorId], references[id])
   authorId  Int
 }

使用此模型,您可以轻松地生成一个带有两个表之间有关系的数据库,并且以更“代码”的方式,易于理解。

自动客户和类型生成

prisma使用自定义客户端来管理您的数据库查询,这意味着每个Prisma项目的客户端内置不同,客户端是在您执行的每个数据库迁移之后生成的,并保持其类型与架构文件匹配。

prisma还为每个表生成一个基本类型定义,因此您也不需要创建应用程序的不同类型文件,而是直接从Prisma导入的文件。

查询批处理

prisma会自动批量查询,例如,在GraphQL中易于处理n+1个问题,而无需其他工具或构建自定义数据编载程序。

Prisma Studio

我认为这是其他最酷的功能,它使Prisma与其他图书馆区分开来。

使用Prisma时,您可以轻松地运行一个名为“ Prisma Studio”的CLI命令,它将读取您的模式文件,并旋转基于浏览器的数据库管理收费,使您可以读取所有表,添加和添加和从它们中删除内容,并在测试时实时观察它们。

有关更多信息和关于它的非常好的文档,只需访问prisma.io并自己尝试,Prisma也有许多实现和自动化,我在这篇文章中没有提及。

如果您喜欢这种类型的内容,请随时在社交媒体上和Dev.to上关注我,我总是尝试写一些我目前在项目上使用的很酷的东西。