Express.js 中如何使用 SQLite 实现数据库操作?

阅读时长 8 分钟读完

介绍

SQLite 是一个轻量级的嵌入式关系型数据库,它支持 SQL 语言和事务处理,是一个非常适合移动设备和小型应用程序的数据库解决方案。在 Express.js 中,我们可以使用 SQLite 来存储和管理数据,以实现各种数据库操作。

本文将介绍如何在 Express.js 中使用 SQLite 实现数据库操作,包括如何创建和连接数据库、如何执行 SQL 语句、如何进行事务处理等。

准备工作

在开始之前,我们需要先安装 SQLite。如果你使用的是 Linux 或 macOS 系统,可以通过以下命令安装:

如果你使用的是 Windows 系统,可以从 SQLite 官网下载预编译的二进制文件进行安装。

安装完成后,我们可以在命令行终端中输入 sqlite3 命令来进入 SQLite 的交互式界面,以测试 SQLite 是否安装成功。

创建和连接数据库

在 Express.js 中,我们可以使用 sqlite3 模块来连接和管理 SQLite 数据库。首先,我们需要通过 Database 类来创建一个数据库实例,然后使用 run 方法来执行 SQL 语句。

下面是一个简单的示例代码,演示了如何创建和连接 SQLite 数据库:

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

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

-- -------
-------------- -- -
  -- ----- -
    ---------------------------
  - ---- -
    ------------------ --- -------- --------------
  -
---
展开代码

在上面的代码中,我们首先通过 sqlite3 模块引入 Database 类,并创建了一个名为 db 的数据库实例。./data/db.sqlite 是数据库文件的路径,如果该文件不存在,SQLite 会自动创建它。

然后,我们通过 close 方法关闭数据库连接。这里要注意的是,由于 SQLite 是单线程的,所以在执行数据库操作时,我们需要确保每个操作都已经完成后再执行下一个操作。

执行 SQL 语句

在 SQLite 中,我们可以使用 SQL 语言来执行各种数据库操作,包括创建表、插入数据、查询数据、更新数据和删除数据等。在 Express.js 中,我们可以使用 runallget 方法来执行 SQL 语句,这些方法都是异步的,并且支持回调函数。

下面是一个示例代码,演示了如何使用 run 方法来执行 SQL 语句:

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

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

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

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

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

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

-----------
展开代码

在上面的代码中,我们首先通过 run 方法创建了一个名为 users 的表,该表包含 idnameemailpassword 四个字段。然后,我们通过 run 方法插入了一条用户数据,该数据包含 nameemailpassword 三个字段,其中 id 字段是自动递增的。

接着,我们使用 all 方法查询了所有用户数据,并在回调函数中打印了查询结果。最后,我们通过 run 方法删除了所有用户数据。

需要注意的是,我们在执行 SQL 语句时,使用了占位符 ? 来代替实际的参数值。这是为了防止 SQL 注入攻击,因为占位符会自动转义参数值,从而避免了恶意用户输入可执行的 SQL 语句。

事务处理

在数据库操作中,事务处理是一种非常重要的机制,它可以确保数据库操作的原子性和一致性。在 SQLite 中,我们可以使用 begincommitrollback 方法来实现事务处理。

下面是一个示例代码,演示了如何使用事务处理来插入多条用户数据:

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

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

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

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

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

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

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

-----------
展开代码

在上面的代码中,我们首先通过 serialize 方法开启了一个序列化的数据库连接,然后使用 BEGIN TRANSACTION 方法开始了一个事务处理。接着,我们定义了一个名为 users 的数组,其中包含三个用户数据。

try 块中,我们使用 for 循环来插入多条用户数据。如果插入过程中出现错误,我们就使用 ROLLBACK 方法回滚事务,并打印错误信息。如果插入成功,我们就使用 COMMIT 方法提交事务,并打印插入成功的信息。

总结

在本文中,我们介绍了如何在 Express.js 中使用 SQLite 实现数据库操作,包括如何创建和连接数据库、如何执行 SQL 语句、如何进行事务处理等。SQLite 是一个非常适合移动设备和小型应用程序的数据库解决方案,它支持 SQL 语言和事务处理,可以满足我们的各种数据库需求。

在实际开发中,我们可以结合 Express.js 的各种功能和中间件来实现更加复杂和实用的数据库应用,例如用户身份认证、数据验证和权限控制等。希望本文能够对你了解和使用 SQLite 有所帮助。

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

纠错
反馈

纠错反馈