使用Promise封装

单个query

const mysqlconnection = mysql.createConnection({
  host: 'localhost',
  user: 'BioCotton',
  password: 'BioCotton39558728cotton@',
  port: 3306,
})

将query使用Promise封装

  • sqlConnection是一个mysql对象

  • sql是查询语句

  • req是客户端请求对象

  • rep是响应客户端对象

  • next中间件函数

function sqlQueryPromise(sqlConnecion, sql, req, rep, next) {
  return new Promise((resolve, NULL) => {
    sqlConnecion.query(sql, function (err, result) {
      if (err) {
        logger.error(
          'sql language error: errcode:' + err.errno + '\t`' + err.sql + '`'
        )
        next({
          code: err.errno,
        }) //sql language error
        return
      }
      resolve(result)
    })
  })
}

进行一次顺序查询

  • 先选择数据库

  • 在进行query

当客户端请求过来的时候,调用封装好的对象;如果query发生错误,自动进入到错误处理中间件;告诉前端错误代码;

如果请求成功,可以接着创建一个Promise对象,进入下一层链式调用

Last updated

Was this helpful?