隨著前端領域的不斷發展,Node.js的使用也越來越普遍,而Koa2是一個基于Node.js平臺的web開發框架,它輕量且高效,可以讓開發者快速構建出高性能的web應用。在本文中,我們將介紹如何使用Koa2讀取Excel文件并將其導入MySQL數據庫。
首先,我們需要安裝相關的依賴包。我們使用的是xlsx模塊,可以在命令行中使用以下命令進行安裝:
npm install --save xlsx
接下來,我們需要引入相關的模塊:
const Koa = require('koa') const Router = require('koa-router') const xlsx = require('xlsx') const mysql = require('mysql') const fs = require('fs') const path = require('path')
然后,我們需要建立一個讀取Excel文件的函數:
function readExcel(filename) { const workbook = xlsx.readFile(filename) const sheetName = workbook.SheetNames[0] const worksheet = workbook.Sheets[sheetName] const data = xlsx.utils.sheet_to_json(worksheet) return data }
接下來,我們需要建立一個向MySQL數據庫中插入數據的函數:
function insertIntoDatabase(data) { const connection = mysql.createConnection({ host: 'localhost', user: 'yourusername', password: 'yourpassword', database: 'yourdatabase' }) connection.connect(function(err) { if (err) throw err console.log('Connected to database!') }) const sql = "INSERT INTO table (column1, column2, column3) VALUES ?" const values = [] data.forEach(function(row) { values.push([row.column1, row.column2, row.column3]) }) connection.query(sql, [values], function(err, result) { if (err) throw err console.log('Data inserted into database!') }) connection.end() }
最后,我們建立一個路由,將讀取Excel文件和導入MySQL數據庫的操作放在一起:
const app = new Koa() const router = new Router() router.get('/import', async (ctx, next) =>{ const data = readExcel(path.join(__dirname, 'data.xlsx')) insertIntoDatabase(data) ctx.body = 'Import successful!' }) app.use(router.routes()) app.listen(3000, () =>{ console.log('Server listening on port 3000') })
現在,我們可以打開終端,使用以下命令啟動服務器:
node app.js
在瀏覽器中輸入http://localhost:3000/import,服務器就會讀取Excel文件并將數據導入到MySQL數據庫中。