Koa是一個靈活的Node.js web框架,擁有簡潔的代碼結構和強大的中間件支持。而MySQL是一種廣泛使用的關系型數據庫管理系統。在開發Web應用時,常常需要對MySQL進行增刪改查等操作。本文將介紹如何在Koa中封裝MySQL。
首先,我們需要安裝相關的依賴包。使用npm install命令安裝koa、koa-router和mysql模塊:
npm install koa koa-router mysql --save
接下來,我們創建一個db.js文件,負責MySQL的連接和基本操作。代碼如下:
const mysql = require('mysql'); const pool = mysql.createPool({ host: 'localhost', user: 'root', password: 'password', database: 'test' }); function query(sql, params = []) { return new Promise((resolve, reject) =>{ pool.getConnection((err, connection) =>{ if (err) { reject(err); return; } connection.query(sql, params, (error, results) =>{ connection.release(); if (error) { reject(error); return; } resolve(results); }); }); }); } module.exports = { query };
上述代碼中,我們通過mysql.createPool創建了一個連接池,可以提升數據庫操作的效率。query函數接受一條SQL語句和參數,返回一個Promise對象,調用resolve時會返回查詢結果,調用reject時會返回錯誤信息。
接下來,我們在Koa應用中使用db.js。假設我們有一個/user接口,可以接收GET請求,返回用戶信息。我們可以編寫如下代碼:
const Koa = require('koa'); const Router = require('koa-router'); const db = require('./db'); const app = new Koa(); const router = new Router(); router.get('/user', async (ctx, next) =>{ const sql = 'SELECT * FROM user'; const result = await db.query(sql); ctx.body = result; }); app.use(router.routes()).use(router.allowedMethods()); app.listen(3000, () =>{ console.log('Server is running at http://localhost:3000'); });
上述代碼中,我們使用db.js的query函數執行了一條SELECT語句,并將結果賦值給ctx.body,返回給客戶端。這里使用了async/await語法糖,使得異步操作更加簡潔易懂。
以上就是如何在Koa中封裝MySQL的教程。通過將數據庫操作封裝為一個模塊,可以降低代碼的耦合度,提高代碼的可維護性。希望本文能對您有所幫助。