简述
Prisma 是一款轻巧、快速的数据库 ORM 工具。它能帮助开发者更轻松地连接数据库、查询数据和管理数据模式,同时不需要编写 SQL 语句。Prisma 适用于任何 Node.js 和 TypeScript 项目,支持多个数据库系统(如 MySQL、PostgreSQL、SQLite、Microsoft SQL Server 等等)。
本文将为您介绍如何使用 NPM 包 prisma,包括了该包的安装、连接数据库、生成模型、集成 with typescript、API 查询等内容,帮助您更好地使用并了解 Prisma。
安装 Prisma
要在您的项目中使用 Prisma,您需要在项目根目录下使用 npm 或 yarn 安装 prisma 这个包:
- -- --- -- ------ --- ------- ------ - -- ---- -- ------ ---- --- ------
安装完毕后,您将能够在项目中使用 Prisma 所提供的所有功能。
连接数据库
在使用 Prisma 之前,您需要在您的项目中配合使用 Prisma 的数据源。Prisma 支持多个数据库系统,每个数据库都需要特定的数据源引擎。
在进行下一步操作之前,请确保您已经安装了您选择的数据库并启动了它的服务。
在您的项目根目录中创建一个 .env
文件,输入以下内容:
-------------------------------------------------------------------------------
请更换其中的参数为您的数据库对应的参数,其中,
postgresql://
表示您使用的数据库系统,username
和password
分别为您的用户名和密码,localhost:5432
后面更换为您连接数据库的主机名或 IP 地址和端口号,mydb
更换成您需要连接的数据库的名称,?schema=public
表示您将在名为 public 的模式中使用。
注意:如果您使用的数据库系统为 SQLite,您将不能使用 DATABASE_URL
的方式连接数据库。这时,请代替创建一个 .env
文件,将 DATABASE_URL
加入到 prisma/schema.prisma
文件的配置中,后面将会有详细说明。
接下来,您需要初始化 Prisma 的数据源。在终端中输入以下命令:
--- ------ ----
此命令将创建一个 prisma
目录,其中包含两个文件:
schema.prisma
:Prisma 数据模型配置文件,用于生成数据库数据模型。prisma/.env
:Prisma 配置文件,用于设置环境变量和数据源连接。
在 prisma
目录下修改 schema.prisma
文件,输入以下内容:
---------- -- - -------- - ------------ --- - ------------------- -
修改或添加 provider 的属性值为您需要的数据库引擎,这里使用的是 PostgreSQL 数据库。
注意:如果您使用的数据库系统为 SQLite,您需要把 datasource db
下的填充部分改为:
---------- -- - -------- - -------- --- - --------------- -
并且,在 prisma/.env
中输入您的数据库路径:
- ----- ------------------------------
生成模型
完成上述配置之后,我们可以使用 Prisma 自动创建数据库模型。
在终端中输入以下命令:
--- ------ ------- --- ------ ----
migrate
命令用于创建一个新的数据库迁移。dev
表示使用数据源,并在 prisma/migrations/dev
中创建一个新的迁移文件。--name
表示迁移的名称,此处命名为 init
。
Prisma 自动创建完毕之后,您可以在 prisma/migrations/dev
中看到迁移文件。
接下来,我们需要使用 Prisma 来生成类型安全的 API,以便我们可以使用 TypeScript 来开发应用程序。
在终端中输入以下命令:
--- ------ --------
这将使用 Prisma 数据模型配置文件(prisma/schema.prisma
)生成一个 node_modules/.prisma/client/
目录。
集成 with TypeScript
如果您想使用 TypeScript 来开发您的应用程序,则需要对 Prisma 进行相应的配置。
首先,您需要在您的项目中安装 TypeScript 和对应的类型声明文件:
- -- ---------- --- ------- ---------- - ------ --- ------- ---------- ----------- -------------
添加以下配置到您的 tsconfig.json
文件中,用于 TypeScript 识别您的 Prisma 类型定义:
- ------------------ - ---------- ---- -------- - ---- ------------------ -------------- - - -
修改 Prisma 的配置文件 prisma/schema.prisma
,添加以下内容:
--------- ------ - -------- - ------------------ ------ - ---------------------- --------------- - ----------- -
此配置将生成一个 src/prisma/client/
用于与数据库连接的 Prisma Client 类型文件。
在您的类型文件中,您可以使用 Prisma 生成的 Client 类型,例如:
------ - ------------ - ---- ---------------- ------ --------- ---- - --- ------ ------ ------ -------- ------ - ----- ------ - --- -------------- ----- -------- ----------- --------------- - ----- ----- - ----- ---------------------- ------ -------------- -- -- --- -------- ------ ----------- -------- ------------ --- - ------ - -------- -
API 查询
Prisma 的主要功能是可以轻松查询数据库,通过自动生成的 TypeScript 类型来保证查询结果的类型安全性。
例如,如果我们要从数据库中选择所有的文章,只需要使用自动生成的 post.findMany()
方法,如下所示:
------ - ------------ - ---- ---------------- ----- ------ - --- -------------- ----- -------- ---------- - ----- ----- - ----- ---------------------- ------ ----- -
此时,您将获取到所有的文章数据。如果需要选择部分字段,可以使用 .select
方法:
---------------------- ------- - ------ ----- -------- ----- ------- - ----- ---- -- -- --
以上 select
方法表示仅查询文章的 title
字段、content
字段和作者的 name
字段。您也可以使用如下的方式来过滤查询数据:
---------------------- ------ - ---------- ----- -- ---
这会查询数据库中已发布的所有文章。您也可以执行多个查询,并将它们组合为一个嵌套的查询:
---------------------- ------ - ---- - --- --- -- -- -------- - ------ ----- -- ---
这个查询将查询所有年龄大于 18 岁的用户,并嵌套查询他们所有的文章。
如果您需要对数据库进行修改(例如,增加、删除或更新记录),Prisma 会自动生成相应的 CRUD 操作方法。
-------------------- ----- - ------ --- --- ------ -------- --- --------- ---------- ------ ------- - -------- - ------ ------------------ -- -- -- --- -------------------- ------ - --- - -- ----- - ---------- ----- -- --- -------------------- ------ - --- - -- ---
结语
本文介绍了如何使用 NPM 包 Prisma,在接下来的开发中,您可以使用 Prisma 创建您的数据库架构、查询数据和更高效地管理数据。如果您需要进一步了解 Prisma,可以访问 Prisma 官方网站。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/59112