前言
随着业务逐渐规模化,各种数据的导入导出需求变得越来越重要。在 Node.js 应用开发中,Sequelize 是一个常用的 ORM 框架,其功能强大且易于使用。在本文中,我们将利用 Sequelize 实现 MySQL 数据库数据的导入导出,并提供示例代码。
数据导出
数据导出的目的是将数据库中的数据保存到特定格式的文件中,例如 CSV、 Excel、 JSON 等。Sequelize 框架提供了很多方法来导出数据,本节将介绍几个常用的方法。
CSV 导出
将数据导出为 CSV 格式可以方便地在电子表格软件(例如 Excel)中进行处理。
const fs = require('fs'); const csvWriter = require('csv-write-stream'); const writer = csvWriter(); const User = require('./models/user'); // 引入 Sequelize 的 User 模型 const data = await User.findAll(); writer.pipe(fs.createWriteStream('data.csv')); data.forEach(d => { writer.write(d.toJSON()); // 将每行数据转为 JSON 并写入 CSV 文件中 }); writer.end();
JSON 导出
将数据导出为 JSON 格式可以方便地在 JavaScript 代码中进行处理。
const fs = require('fs'); const User = require('./models/user'); // 引入 Sequelize 的 User 模型 const data = await User.findAll(); fs.writeFileSync('data.json', JSON.stringify(data));
Excel 导出
将数据导出为 Excel 格式可以在电子表格软件中方便地进行处理。需要使用第三方库 exceljs
。
const fs = require('fs'); const ExcelJS = require('exceljs'); const User = require('./models/user'); // 引入 Sequelize 的 User 模型 const data = await User.findAll(); const workbook = new ExcelJS.Workbook(); const worksheet = workbook.addWorksheet('My Sheet'); worksheet.columns = [ { header: 'ID', key: 'id', width: 10 }, { header: 'Name', key: 'name', width: 32 }, { header: 'Age', key: 'age', width: 15 }, ]; data.forEach(d => { worksheet.addRow(d.toJSON()); // 将每行数据转为 JSON 并添加到 Excel 工作表中 }); workbook.xlsx.writeFile('data.xlsx');
数据导入
数据导入的目的是将特定格式的文件中的数据导入到数据库中。Sequelize 框架提供了 bulkCreate
方法来实现数据导入,其支持从 CSV、Excel、JSON 等格式中导入数据。本节将以 CSV 格式为例进行讲解。
CSV 导入
const fs = require('fs'); const csv = require('csv-parser'); const User = require('./models/user'); // 引入 Sequelize 的 User 模型 fs.createReadStream('data.csv') .pipe(csv()) .on('data', async (row) => { await User.create(row); // 将每行数据插入到数据库中 }) .on('end', () => { console.log('Data imported'); });
总结
本文介绍了使用 Sequelize 实现 MySQL 数据库数据的导入导出的方法,并提供了示例代码。在实际开发中,我们根据具体需求选择合适的方法进行导入导出操作,以提高工作效率。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65a79908add4f0e0ff0bddcc