ndoejs中同步请求mysql数据库


在JavaScript 的mysql库,默认的请求方法是异步的,返回结果处理逻辑是写在回调函数里的,如果操作稍微复杂,很容易掉进回调地狱而使代码看起来冗杂以及不好调试。这里附上本人常用的封装后的同步函数

命令行
npm install 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}'
    `
)