在JavaScript 的mysql库,默认的请求方法是异步的,返回结果处理逻辑是写在回调函数里的,如果操作稍微复杂,很容易掉进回调地狱而使代码看起来冗杂以及不好调试。这里附上本人常用的封装后的同步函数
命令行
const mysql = require('mysql');
// 建立连接池
const pool = mysql.createPool({
host: 'localhost',
user: 'root',
password: '123456',
// 数据库名
database: 'databasename'
});
let query = ( sql, values ) => {
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()
})
}
})
})
}
用法:
const username = 'abc'
await query(
`
select * from user where username='${username}'
`
)