express+mysql对async的封装

//DBConfig.js
const mysql = require('mysql') const pool = mysql.createPool({ host: '127.0.0.1', user: 'root', password: 'admin', database: 'nodetest', port: 3306 }) let query = function( 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() }) } }) }) } module.exports = query

使用:

//用户登录
router.post('/login', async (req, res) => {
    var param = req.body;
    var user_name = param.user_name;
    var password = param.password;
    var _res = res;
    var data = {};
    var userInfos = [];
    const logins = await query(userSQL.queryAll)
      var LFlag = false;
      var md5Value=utility.md5(password);
      if(logins){
        for (let i=0;i<logins.length;i++) {
            if(logins[i].user_name == user_name && logins[i].password == md5Value) {
              LFlag = true;
              userInfos[i] = logins[i];
            }else if(logins[i].user_name == user_name && logins[i].password != password){
              LFlag = false;
            }
        }
      }
      data.data = {};
      if(LFlag == true) {
          for(let i of userInfos){
            data.data = i;
          }
          data.status = 0;
          data.msg = "登陆成功"
      }else{
          data.status = -1;
          data.msg = "用户名或密码错误";
      }
      responseJSON(_res, data);
});

//只在本地运行,服务器测试通过再补充

猜你喜欢

转载自www.cnblogs.com/CarrotHu/p/10652677.html