📌  相关文章
📜  如何使用 Node.js 将 .CSV 文件中的数据导入 MySQL 表?(1)

📅  最后修改于: 2023-12-03 15:23:56.632000             🧑  作者: Mango

使用 Node.js 将 .CSV 文件中的数据导入 MySQL 表

在实际开发中,经常会遇到需要将 .CSV 文件中的数据导入到 MySQL 数据库表中的情况。本文将介绍如何使用 Node.js 实现这个过程。

安装模块

我们将使用以下模块:

  • mysql:Node.js 连接 MySQL 数据库的模块。
  • csv-parser:解析 .CSV 文件的模块。

可以使用以下命令进行安装:

npm install mysql csv-parser
实现导入过程

以下是在 Node.js 中将 .CSV 文件中的数据导入 MySQL 数据库表的步骤:

  1. 连接 MySQL 数据库
const mysql = require('mysql');
const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: 'your_password',
  database: 'your_database'
});
connection.connect();
  1. 设置数据表结构

在导入之前,需要设置好 MySQL 数据库表的结构。考虑到 .CSV 文件中的每一行数据都对应一个数据库表的一行数据,我们可以将数据表的结构设计为与 .CSV 文件中的列一一对应。

CREATE TABLE IF NOT EXISTS my_table (
  id INT(11) NOT NULL AUTO_INCREMENT,
  column1 VARCHAR(255),
  column2 VARCHAR(255),
  column3 VARCHAR(255),
  PRIMARY KEY (`id`)
);
  1. 读取 .CSV 文件并导入数据

使用 csv-parser 模块读取 .CSV 文件,并将每一行数据导入 MySQL 数据库表中。

const fs = require('fs');
const csv = require('csv-parser');

fs.createReadStream('my_data.csv')
  .pipe(csv())
  .on('data', (data) => {
    connection.query('INSERT INTO my_table SET ?', data, (error, results, fields) => {
      if (error) throw error;
    });
  })
  .on('end', () => {
    console.log('All data has been imported successfully!');
  });

在上述代码中,createReadStream() 方法读取指定的 .CSV 文件,并使用 .pipe(csv()) 方法解析每一行数据。然后,将数据插入到 MySQL 数据库表中。

由于 .CSV 文件中的列名可能与数据表的列名不一致,本示例中的代码使用了 JavaScript 对象(data)来表示每一行数据,这样就可以将 .pipe(csv()) 返回的对象中的属性(列名)与数据表的列名一一对应地插入到 MySQL 数据库表中。

注意:如果 .CSV 文件中包含了功能类似于 MySQL 数据库中的“NULL”或“NOW()”的特殊值,在导入时需要对这些值进行特殊处理。

  1. 关闭数据库连接

完成导入操作后,需要关闭 MySQL 数据库连接。

connection.end();
总结

本文介绍了使用 Node.js 将 .CSV 文件中的数据导入 MySQL 数据库表的过程。采用 csv-parser 模块解析 .CSV 文件,使用 MySQL 模块将解析后的数据插入到 MySQL 数据库表中。