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框架。
本站声明:
1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/database/293201.html