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
}
原创小于 1 分钟