【全栈开发】如何使用Next.js、Prisma和Vercel Postgres构建全栈应用程序
Prisma是下一代ORM,可用于访问Node.js和TypeScript应用程序中的数据库。在本指南中,您将学习如何使用以下技术实现示例全栈博客应用程序:
【Redwood】使用Redwood构建用户面板
现在,您登录的几乎每个应用程序都有一个仪表板。它们中的大多数都是用React或Angular等现代框架构建的,并且有某种后端来支持它们。用户依靠这些仪表板来检查他们的帐户信息、更新他们的业务以及处理许多其他操作。
在本教程中,我们将使用Redwood为管理系统制作一个用户面板。用户可以采取一些操作将其他用户添加到具有不同角色的帐户中。仪表板还允许用户将新项目添加到其库存中,这些项目将附加到不同的位置。
让我们以红木为背景开始吧。
什么是Redwood
Redwood是一个使用Prisma、React和GraphQL构建的全栈框架。它有很多功能和一些命令,我们将使用这些功能快速制作这个应用程序。如果你有兴趣了解更多关于红木的信息,一定要查看他们的文档。
设置项目
现在,让我们开始设置我们的仪表板。我们将通过运行以下命令来引导此应用程序。只是提醒一下,它可能需要几分钟才能完成,但值得等待。
【GraphQL】什么是Prisma?
本页提供了Prisma及其工作原理的高级概述。
如果您想开始一个实用的介绍并了解Prisma Client API,请参阅入门文档。
要了解更多关于Prisma的动机,请查看“为什么选择Prisma?”?页
什么是Prisma?
Prisma是一个开源的下一代ORM。它由以下部分组成:
- Prisma客户端:Node.js和TypeScript的自动生成和类型安全查询生成器
- Prisma迁移:迁移系统
- Prisma Studio:GUI,用于查看和编辑数据库中的数据。
Prisma Studio是Prisma ORM中唯一一个非开源的部分。您只能在本地运行Prisma Studio。Prisma Studio还集成在我们的商业产品Prisma Data Platform中,名称为Data Browser。在数据浏览器中,您可以查看和编辑每个项目的数据,其他团队成员也可以在您授予他们适当角色的权限后进行查看和编辑。
【GraphQL 】将GraphQL API添加到Postgres数据库的六种简单方法,比较Hasura、Prisma和其他
PostgreSQL是世界上最流行的开源SQL数据库之一,GraphQL是一种日益流行的API规范。
将经过验证和众所周知的PostgreSQL与GraphQL带来的API创建新方式集成在一起不是很好吗?
在本文中,我们讨论了六个不同的项目,它们试图将SQL与GraphQL世界合并。其中一些甚至允许基于数据库结构自动创建模式。
以数据库为中心的方法
以数据库为中心的解决方案试图消除大多数配置和架构设置。他们将检查我们的数据库外观,并为我们提供类型和端点。
由于他们知道数据库的结构,他们可以为我们生成高性能的解析器,因此我们不会遇到N+1查询问题。
1. Hasura
Instant Real-time GraphQL on Postgres
Hasura可能是目前球场上最令人兴奋的球员。这是服用类固醇的PHPMyAdmin。
它在Docker容器中运行,作为数据库前面的服务器,并为我们提供一个DB和API的管理UI,就像PHPMyAdmin一样。
【全栈开发】使用NestJS、Angular和Prisma的全栈Typescript
在开发Angular应用程序时,我非常喜欢Typescript。使用NestJS,您可以以与Angular非常相似的方式编写后端。
我偶然发现了这个库,发现它非常有趣,所以我想设置一个简单的测试项目。一般来说,我主要使用SQL数据库,因此我也将尝试Prisma将我们的数据存储在PostgreSQL中,并在前端和后端之间提供一个通用模型。
要开始使用NestJS,您必须安装npm包并运行CLI命令来创建新的应用程序。为了在NestJS项目中托管我们的Angular应用程序,我们还需要添加NestJS静态包。
【Angular】具有Angular、Nest、Nx和Prisma的全堆叠式安全
当我们能够将类型安全性扩展到堆栈的所有部分时,TypeScript真的大放异彩。在本文中,我们将研究如何将类型安全应用于全栈Angular和NestJS应用程序的每个部分,包括数据库访问。我们将看到如何通过使用Nx单回购在整个堆栈中共享类型。
2020年对TypeScript来说是伟大的一年。使用量激增,开发人员开始喜欢类型安全的好处,该语言在许多不同的环境中被采用。
虽然TypeScript对于主要使用React、Vue、Svelte和其他软件的开发人员来说可能是相当新的,但对于Angular开发人员来说,它已经存在了相当长的一段时间。Angular(2+版本)最初于2015年编写,并使用TypeScript完成。Angular团队早期就在类型安全上下了赌注,鼓励开发人员也用TypeScript编写Angular应用程序,尽管用JavaScript编写它们是一种选择。