📅  最后修改于: 2023-12-03 15:23:56.632000             🧑  作者: Mango
在实际开发中,经常会遇到需要将 .CSV 文件中的数据导入到 MySQL 数据库表中的情况。本文将介绍如何使用 Node.js 实现这个过程。
我们将使用以下模块:
可以使用以下命令进行安装:
npm install mysql csv-parser
以下是在 Node.js 中将 .CSV 文件中的数据导入 MySQL 数据库表的步骤:
const mysql = require('mysql');
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'your_password',
database: 'your_database'
});
connection.connect();
在导入之前,需要设置好 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`)
);
使用 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()”的特殊值,在导入时需要对这些值进行特殊处理。
完成导入操作后,需要关闭 MySQL 数据库连接。
connection.end();
本文介绍了使用 Node.js 将 .CSV 文件中的数据导入 MySQL 数据库表的过程。采用 csv-parser 模块解析 .CSV 文件,使用 MySQL 模块将解析后的数据插入到 MySQL 数据库表中。