npm 包 raku-orm 使用教程

阅读时长 8 分钟读完

介绍

raku-orm 是一个基于 Node.js 的 npm 包,提供了一个简洁易用的 ORM(对象关系映射)框架。它可以让开发者轻松地将 Node.js 应用程序连接到各种关系型数据库,并通过 JavaScript 对数据库进行操作。

raku-orm 支持多种数据库,包括 MySQL、PostgreSQL、Oracle、SQLite 等,并提供了一组方便的 API 来访问和操作关系型数据库。

本篇文章将介绍如何使用 raku-orm 连接到 MySQL 数据库,并进行常见的数据库操作,如插入、查询、更新和删除数据。

安装

首先,我们需要在项目中安装 raku-orm。使用 npm 包管理器,可以通过以下命令安装:

连接到数据库

在使用 raku-orm 之前,我们需要先连接到数据库。在本例中,我们将使用 MySQL 数据库作为示例。

首先,需要在项目中安装 mysql2 这个 npm 包,它是 MySQL 数据库的 Node.js 驱动程序。

然后,在项目中创建一个名为 config.json 的配置文件,并输入以下内容:

将上述配置文件中的 host、port、user、password、database 替换为你自己的 MySQL 数据库信息。dialect 表示所使用的数据库类型,本例中为 MySQL。

接下来,在项目中创建一个名为 index.js 的文件,并输入以下内容:

-- -------------------- ---- -------
----- - --------- - - ---------------------
----- ------ - -------------------------

----- --------- - --- ----------
  ----------------
  ----------------
  ----------------
  -
    ----- ----------------
    -------- --------------
  -
--

------ -- -- -
  --- -
    ----- -------------------------
    ----------------------- --- ---- ----------- ----------------
  - ----- ------- -
    --------------------- -- ------- -- --- ----------- -------
  -
-----

在上述代码中,我们使用 Sequelize 创建一个连接到数据库的实例,并使用 authenticate() 方法测试连接。如果连接成功,控制台将输出 "Connection has been established successfully."。

定义模型

在 raku-orm 中,模型表示数据库中的一个表。下面,我们将使用 Sequelize 来定义一个名为 User 的模型。

在项目中创建一个名为 models/user.js 的文件,并输入以下内容:

-- -------------------- ---- -------
----- - ---------- --------- - - ---------------------
----- --------- - --------------------

----- ---- - ------------------------ -
  --- -
    ----- ------------------
    ----------- -----
    -------------- ----
  --
  --------- -
    ----- -----------------
    ---------- -----
  --
  --------- -
    ----- -----------------
    ---------- -----
  -
---

-------------- - -----

在上述代码中,我们使用 Sequelize 的 define() 方法定义一个名为 User 的模型。它有三个字段:id、username 和 password。id 为整数类型,并设为主键和自动递增。username 和 password 字段为字符串类型,并设置为不允许为空。

数据库操作

现在,我们已经成功地连接到了 MySQL 数据库,并定义了 User 的模型。下面,我们将介绍如何执行常见的数据库操作,如插入、查询、更新和删除数据。在本例中,我们将以 Promise 的形式进行操作。

插入数据

在 raku-orm 中,可以使用 create() 方法向数据库插入一条新记录。例如:

-- -------------------- ---- -------
----- ---- - -------------------------

------ -- -- -
  --- -
    ----- ---- - ----- ------------- --------- ------- --------- ---------- ---
    ----------------- ---- -- ---------- --- ---- -----------
  - ----- ------- -
    --------------------- -- ------ ------- -------
  -
-----

上述代码将在 User 表中插入一条新记录,包含 username 和 password 字段。create() 方法返回一个 Promise,它的解决值是插入的记录对象。如果插入成功,控制台将输出 "User with ID {id} has been created."。

查询数据

在 raku-orm 中,可以使用 findAll() 方法查询数据。例如,查询 User 表中所有记录:

-- -------------------- ---- -------
----- ---- - -------------------------

------ -- -- -
  --- -
    ----- ----- - ----- ---------------
    ------------------ --------------- ---------
  - ----- ------- -
    --------------------- -- -------- -------- -------
  -
-----

上述代码将查询 User 表中所有记录,并返回一个 Promise,其解决值是一个数组,其中包含所有记录对象。如果查询成功,控制台将输出 "Found {userCount} users."。

除了 findAll() 方法,raku-orm 还提供了其他查询方法,如 findOne()、findById()、findOrCreate() 等。详细的查询方法可以查看官方文档。

更新数据

在 raku-orm 中,可以使用 update() 方法更新数据。例如,将 User 表中 username 为 john 的记录的密码更新为新密码:

-- -------------------- ---- -------
----- ---- - -------------------------

------ -- -- -
  --- -
    ----- ------ - ----- ------------- --------- -------------- -- - ------ - --------- ------ - ---
    -------------------- ------------ -----------
  - ----- ------- -
    --------------------- -- ------ ------- -------
  -
-----

上述代码将使用 update() 方法更新 User 表中 username 为 john 的记录的密码为 "new_password"。使用 where 选项指定更新条件。update() 方法返回一个 Promise,其解决值是一个数组,其中包含更新的记录数和更新成功的记录对象。如果更新成功,控制台将输出 "Updated {recordCount} records."。

删除数据

在 raku-orm 中,可以使用 destroy() 方法删除数据。例如,删除 User 表中 username 为 john 的记录:

-- -------------------- ---- -------
----- ---- - -------------------------

------ -- -- -
  --- -
    ----- ------ - ----- -------------- ------ - --------- ------ - ---
    -------------------- --------- -----------
  - ----- ------- -
    --------------------- -- ------ ------- -------
  -
-----

上述代码将使用 destroy() 方法删除 User 表中 username 为 john 的记录。使用 where 选项指定删除条件。destroy() 方法返回一个 Promise,其解决值为删除成功的记录数。如果删除成功,控制台将输出 "Deleted {recordCount} records."。

总结

raku-orm 是一个非常方便的 Node.js ORM 框架,可以让我们更轻松地操作关系型数据库。通过本篇文章的介绍,我们已经学习了如何连接到 MySQL,定义模型,插入、查询、更新和删除数据。希望本篇文章对大家学习 raku-orm 有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005591981e8991b448d68ae

纠错
反馈