跳至主要內容
mysqljs的Promise封装

mysqljs暂不支持Promise的写法,这导致我们代码的嵌套层级增多,不易于理解和维护,所以需要对其进行Promise封装,结合async/await来使代码易于维护。

mysqljs的Promise封装

假设我们将mysqljs的Promise封装放在db.js文件中,内容如下:

const mysql = require('mysql');

// 创建连接池
const pool = mysql.createPool({
  connectionLimit: 50,
  host: process.env.dbHost,
  user: process.env.dbUser,
  password: process.env.dbPassword,
  database: process.env.dbDatabase,
  multipleStatements: true
});

let query = function (sql, values) {
  // 返回一个 Promise
  return new Promise((resolve, reject) => {
    pool.getConnection(function (err, connection) {
      if (err) {
        reject(err)
      } else {
        connection.query(sql, values, (err, rows) => {
          if (err) {
            reject(err)
          } else {
            resolve(rows)
          }
          // 结束会话
          connection.release()
        })
      }
    })
  })
}

module.exports = {
  query
}

fxss原创小于 1 分钟nodemysqljs