NPM 包 Prisma 使用教程

简述

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:// 表示您使用的数据库系统,
  • usernamepassword 分别为您的用户名和密码,
  • 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


猜你喜欢

  • npm 包 lodash.gte 使用教程

    介绍 lodash.gte 是一个常用的 npm 包,它提供了一种比较值是否大于等于给定值的方法。它使用简单,而且可以方便的在 JavaScript 项目中使用。在本文中,我们将介绍如何使用 loda...

    6 年前
  • npm 包 lodash.gt 使用教程

    在前端开发过程中,经常需要使用一些帮助我们更高效地编写代码、提高代码可维护性的工具。其中,lodash 是一个十分常用的 JS 工具库,提供了许多实用的函数,其中就包含了用于比较两个数值的 lodas...

    6 年前
  • npm 包 lodash.invoke 使用教程

    介绍 lodash 是一款功能丰富的 JavaScript 工具库,提供了许多实用的工具函数,能够大大提高前端开发效率。其中的 lodash.invoke 函数则能够调用对象的方法,并传递给方法所需的...

    6 年前
  • npm 包 lodash.invertby 使用教程

    在前端开发中,经常需要进行对象的转换和操作,而 lodash.invertby 是一个非常实用的 npm 包,可以快速实现对象的键值对反转和分组操作。本文将详细介绍 lodash.invertby 的...

    6 年前
  • npm 包 lodash.invert 使用教程

    在前端开发领域,经常需要操作 JavaScript 对象。然而,当使用对象时,映射(即 key-value)是非常常见的,可能会遇到两个对象,需要将它们合并,但是遇到相同的 key 时,需要将 val...

    6 年前
  • npm 包 lodash.intersectionwith 使用教程

    前言 随着前端技术的发展,使用 npm 包已成为了前端开发的标配。而 lodash.intersectionwith 则是其中的一款不可或缺的工具。那么,接下来我将详细介绍 lodash.inters...

    6 年前
  • npm 包 lodash.intersectionBy 使用教程

    前言 npm 是一个世界上最大的开源代码库,允许开发者在自己的项目中轻松使用各种库和工具。其中 lodash 是一个非常实用的 JavaScript 实用工具库,提供了很多实用的函数来简化 JavaS...

    6 年前
  • npm 包 lodash.inrange 使用教程

    在前端开发中,我们常常需要对数值或者某一数值范围进行判断和处理。此时,我们可以使用一个非常好用的 npm 包——lodash.inrange。 本文将详细介绍 lodash.inrange 的使用方法...

    6 年前
  • npm 包 lodash.initial 使用教程

    简介 lodash 是一个 JavaScript 工具库,提供了很多基础的函数,可以让我们在编写 JavaScript 代码的时候更加方便快捷。lodash 中的 initial 是其中一个比较常用的...

    6 年前
  • npm 包 lodash.indexof 使用教程

    在前端开发中,经常需要对数组进行操作,比如检索数组中某个元素的位置。lodash.indexof 就是一个常用的 npm 包,它提供了快捷的实现方式。本文就为大家详细介绍如何使用 lodash.ind...

    6 年前
  • npm 包 lodash.isarraylikeobject 使用教程

    什么是 lodash.isarraylikeobject lodash.isarraylikeobject 是 lodash 这个 JavaScript 函数工具库的一个 npm 包,可用于判断一个值...

    6 年前
  • npm包lodash.isarraylike使用教程

    什么是lodash.isarraylike? lodash.isarraylike是一个用于判断一个值是否为类数组的npm包。类数组是一个对象,其具有length属性和数值索引。

    6 年前
  • npm 包 lodash.isarraybuffer 使用教程

    在前端开发中,我们经常需要处理二进制数据。而在 JavaScript 中,我们可以通过 ArrayBufffer 对象来处理二进制数据。但是在处理的过程中,我们需要一些辅助函数来方便我们判断一个变量是...

    6 年前
  • npm 包 lodash.isarguments 使用教程

    在前端开发中,我们经常需要处理函数的参数。而根据 ECMAScript 规范,函数的参数实际上是在内部被转化成了一个类数组对象。这个对象被称为 arguments 对象。

    6 年前
  • npm 包 lodash.invokemap 使用教程

    在前端开发中,经常需要对数据进行处理和操作。lodash 是一个非常优秀的 JavaScript 工具库,其中的 lodash.invokemap 可以帮助我们更方便地对数据进行处理。

    6 年前
  • npm 包 lodash.isequalwith 使用教程

    在前端开发中,我们经常需要比较两个对象是否相等。虽然 JavaScript 原生提供了 == 和 === 运算符,但是它们并不能很好地处理深层次的嵌套属性比较。 这时候,一个优秀的比较工具就显得尤为重...

    6 年前
  • npm 包 lodash.iselement 使用教程

    lodash.iselement 是 lodash 库中的一个方法,主要用于判断一个元素是否为 DOM 元素。该方法广泛应用于前端开发中,特别是跨浏览器应用程序的编写。

    6 年前
  • npm包lodash.isdate使用教程

    lodash.isdate是一个轻量级的npm包,用于判断一个变量是否是日期类型。在前端开发中,经常需要对日期进行处理,因此掌握lodash.isdate的使用方法对于提高开发效率非常重要。

    6 年前
  • npm 包 lodash.isBuffer 使用教程

    简介 lodash.isBuffer 是 lodash 库的一个方法,它用来检测一个对象是否为 Buffer。Buffer 是 Node.js 中的一个核心模块,用来处理二进制数据。

    6 年前
  • npm 包 lodash.ismatchwith 使用教程

    简介 lodash.ismatchwith 是一个非常实用的 npm 包,它的作用是比较两个对象是否相等。相较于 JavaScript 自带的 == 和 === 运算符,它拥有更强大的比较能力,并且支...

    6 年前

相关推荐

    暂无文章