class DBPool { constructor() { this.mysql = require("mysql"); this.config = require("./db.config"); //1.創建mysql連接對象 this.pool = this.mysql.createPool(this.config); } query(sql, params, callBack) { //2.打開 this.pool.getConnection((err, connection) => { if (err) { console.log("數據庫連接失敗"); throw err; } console.log("數據庫連接成功"); //3.執行sql查詢 connection.query(sql, params, (err, results, fields) => { //4.釋放連接 connection.release(); //5.銷燬連接: 當連接不需要使用且需要從連接池中移除的時候,我們可以使用destory方法,該方法使用如下所示: // connection.destroy(); if (err) { console.log("數據庫操作失敗"); throw err; } console.log("數據庫操作成功"); callBack && callBack({ results, fields }); }); }); } queryAsync(sql, params) { const self = this; return new Promise((resolve, reject) => { //2.獲取連接 this.pool.getConnection((err, connection) => { if (err) { console.log("數據庫連接失敗"); reject(err); return; } console.log("數據庫連接成功"); //3.執行sql查詢 connection.query(sql, params, (err, results, fields) => { connection.release(); //釋放鏈接 // connection.destroy();//銷燬鏈接 if (err) { console.log("數據庫操作失敗"); reject(err); return; } console.log("數據庫操作成功"); resolve({ results, fields, }); }); }); }); } } module.exports = new DBPool();