Sequelize 导入 CSV 数据的技巧和方法

阅读时长 4 分钟读完

在前端开发中,Sequelize 是一个常用的 ORM 框架,它提供了一种将数据库中的表映射为 JavaScript 对象的方式。在实际开发中,我们经常需要从 CSV 文件中导入数据到数据库中,本文将介绍如何使用 Sequelize 导入 CSV 数据。

1. 安装依赖

在使用 Sequelize 导入 CSV 数据之前,我们需要安装一些必要的依赖:

其中,csv-parser 是一个用于解析 CSV 文件的 Node.js 模块,sequelize 则是 Sequelize 的核心模块。

2. 创建模型

在导入 CSV 数据之前,我们需要先创建对应的 Sequelize 模型。以导入 students.csv 文件为例,我们可以创建如下的模型:

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

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

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

上面的代码中,我们创建了一个名为 Student 的模型,并定义了 namegenderage 三个属性。此外,我们还将 timestamps 设为 false,以避免在数据库中自动添加时间戳字段。

3. 导入 CSV 数据

有了模型之后,我们就可以开始导入 CSV 数据了。首先,我们需要读取 CSV 文件并解析其中的数据:

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

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

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

上面的代码中,我们使用 fs 模块的 createReadStream 方法读取 students.csv 文件,并使用 csv-parser 模块解析其中的数据。在解析过程中,我们将每一行数据存放在 results 数组中,并在解析完成后输出该数组。

接下来,我们需要将解析出来的数据插入到数据库中:

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

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

上面的代码中,我们使用 async/await 将插入操作变为异步操作,以避免出现并发插入的问题。在插入数据时,我们使用 create 方法创建一个新的 Student 实例,并将解析出来的数据分别赋值给 namegenderage 属性。在插入完成后,我们输出一条成功信息。

4. 总结

本文介绍了使用 Sequelize 导入 CSV 数据的方法,包括创建模型、读取 CSV 文件、解析数据和插入数据库。通过本文的学习,读者将能够掌握使用 Sequelize 导入 CSV 数据的技巧和方法,为实际开发中的数据导入操作提供指导意义。

示例代码:https://github.com/mrleidesen/sequelize-import-csv

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

纠错
反馈