数据库
首页 > 数据库> > 怎样使用PrismaORM构建NestJSRestAPI

怎样使用PrismaORM构建NestJSRestAPI

作者:互联网

NestJS是用于构建后端应用程序的非常可靠的框架。

在这篇文章中,我们将利用我们的NestJS知识并将其与Prisma结合起来构建一个RESTfulAPI。这篇文章将有一堆代码,您可以从末尾的Github链接获取这些代码,或者您也可以一起编写代码。

如果你是NestJS的新手,你可以从这篇文章开始NestJS。

什么是棱镜?
Prisma是下一代对象关系映射器(ORM)。我们可以将它与Typescript以及Javascript一起使用。它采用与传统ORM略有不同的方法。您可以查看Prisma的官方网站以获取更多信息。

Prisma不使用类,而是使用一种特殊的模式定义语言。

基本上,开发人员使用这种模式定义语言来描述他们的模式。Prisma运行模式并根据所选数据库编写适当的迁移。它还生成类型安全代码以与数据库交互。

换句话说,Prisma提供了一种替代方法来编写纯SQL查询或使用其他ORM(例如TypeORM或Sequelize)。它可以与各种数据库一起工作,例如PostgreSQL、MySQL、SQLite甚至MongoDB。

Prisma由两个主要部分组成:

PrismaMigrate–这是Prisma提供的迁移工具。它帮助我们保持数据库模式与Prisma模式同步。对于我们的架构的每次更改,PrismaMigrate都会生成一个迁移文件。这样,它还有助于维护我们的模式可能发生的所有更改的历史记录。
Prisma客户端——这是自动生成的查询生成器。Prisma客户端充当我们的应用程序代码和数据库之间的桥梁。它还提供类型安全。
我们将利用PrismaMigrate和PrismaClient来构建我们的应用程序。

PrismaORM有多好?
虽然这可能是一个主观问题,但Prisma旨在让开发人员更容易处理数据库查询。

任何开发人员都知道,大多数应用程序绝对有必要与数据库交互以管理数据。这种交互可以使用原始查询或ORM框架(例如TypeORM)进行。虽然原始查询或查询构建器提供了更多控制,但它们降低了开发人员的整体生产力。

另一方面,ORM框架通过将数据库模型定义为类来抽象SQL。这提高了生产力,但大大减少了开发人员的控制。它还会导致对象阻抗不匹配。

对象阻抗不匹配是一个概念性问题,当面向对象的编程语言与关系数据库交互时出现。在关系数据库中,数据是规范化的,不同实体之间的链接是通过外键实现的。但是,对象使用嵌套结构建立相同的关系。编写应用程序代码的开发人员习惯于考虑对象及其结构。在处理关系数据库时,这会导致不匹配。

Prisma试图通过提高开发人员的工作效率并赋予他们更多的控制权来解决围绕对象关系映射的问题。

Prisma实现这一目标的一些重要方式如下:

它允许开发人员从对象的角度来思考。
它有助于避免复杂的模型对象
它有助于使用模式文件为数据库和应用程序维护单一事实来源
有助于编写类型安全的查询以在编译时捕获错误
更少的样板代码。开发人员可以简单地定义他们的模式,而不用担心特定的ORM框架。

标签:后端应用,应用程序,框架,编写代码,开发
来源: