国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

nodejs同步調(diào)用獲取mysql數(shù)據(jù)時遇到的大坑

2019-11-19 12:02:56
字體:
供稿:網(wǎng)友

mysql調(diào)用獲取數(shù)據(jù),只能是異步方式返回結(jié)果,不能同步獲取結(jié)果,因此,須在回調(diào)函數(shù)中編寫處理事件。期間看了下Aysnc.js,是用于多個要返回回調(diào)函數(shù)的事件,將這些事件有序的組織起來,最后只返回一個回調(diào)函數(shù),并沒有改變異步的本質(zhì),而是將多個異步整合為一個異步,從而滿足寫程序的需求。

錯誤示范

獲取數(shù)據(jù)庫中的數(shù)據(jù)函數(shù)

var _getUser = function(name) {  var sql = "SELECT * FROM " + TABLE + " WHERE user_loginname='" + name + "'";  connection.query(sql, function(err, results) {    if(!err) {      var res = hasUser(results);      return res;    }else {      return error();    }  });  function hasUser(results) {    if(results.length == 0) {      return {err: 1, msg: "此用戶名不存在"};    }    else {      return results[0];    }  }  function error() {    return {err: 1, msg: "數(shù)據(jù)庫出錯"};  }}var getUser = function(name){  return _getUser(name);}

獲取結(jié)果處理事件

//獲取post上來的 data數(shù)據(jù)中 uname的值var uname = req.body.uname; var User = getUser(uname);if(User.err){   res.status(404) } else {  var upwd = md5 (req.body.upwd);  //查詢到匹配用戶名的信息,但相應的password屬性不匹配  if(upwd != User.user_passwd){       req.session.error = "密碼錯誤";     res.send(404);     // res.redirect("/login");   }else{      //信息匹配成功,則將此對象(匹配到的user) 賦給session.user 并返回成功                       req.session.user = {name: uname, password: upwd};     res.status(200).send("success")     // res.send(200);     // res.redirect("/home");   } }// md5方式加密function md5 (text) {  return crypto.createHash('md5').update(text).digest('hex');};

正確示范

獲取數(shù)據(jù)庫中的數(shù)據(jù)函數(shù)

var _getUser = function(name, callback) {  var sql = "SELECT * FROM " + TABLE + " WHERE user_loginname='" + name + "'";  connection.query(sql, function(err, results) {    if(!err) {      var res = hasUser(results)      callback(res);    }else {      callback(error());    }  });  function hasUser(results) {    if(results.length == 0) {      return {err: 1, msg: "此用戶名不存在"};    }    else {      return results[0];    }  }  function error() {    return {err: 1, msg: "數(shù)據(jù)庫出錯"};  }}var getUser = function(name, callback){  return _getUser(name, callback);}

獲取結(jié)果處理事件

//獲取post上來的 data數(shù)據(jù)中 uname的值var uname = req.body.uname; getUser(uname, function(data){  var User = data;  if(User.err){    res.status(404)  } else {    var upwd = md5 (req.body.upwd);    //查詢到匹配用戶名的信息,但相應的password屬性不匹配    if(upwd != User.user_passwd){        req.session.error = "密碼錯誤";      res.send(404);      // res.redirect("/login");    }else{       //信息匹配成功,則將此對象(匹配到的user) 賦給session.user 并返回成功                        req.session.user = {name: uname, password: upwd};      res.status(200).send("success")      // res.send(200);      // res.redirect("/home");    }  }});// md5方式加密function md5 (text) {  return crypto.createHash('md5').update(text).digest('hex');};

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對武林網(wǎng)的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 金阳县| 汾西县| 苏尼特左旗| 祁门县| 新田县| 临漳县| 通道| 东台市| 西宁市| 顺平县| 和龙市| 旌德县| 江源县| 吴堡县| 筠连县| 无极县| 滨海县| 德阳市| 独山县| 承德县| 峡江县| 宣汉县| 象山县| 壶关县| 定安县| 宜州市| 溧水县| 荔波县| 新巴尔虎左旗| 昭通市| 靖西县| 宝应县| 六枝特区| 武功县| 西乡县| 东至县| 龙岩市| 渭南市| 渭南市| 从江县| 天津市|