mysql nodejs同步调用获取数据时遇到的大坑

  

mysql调用获取数据,只能是异步方式返回结果,不能同步获取结果,因此,须在回调函数中编写处理事件。期间看了下Aysnc.js,是用于多个要返回回调函数的事件,将这些事件有序的组织起来,最后只返回一个回调函数,并没有改变异步的本质,而是将多个异步整合为一个异步,从而满足写程序的需求。

  

<强>错误示范

  

获取数据库中的数据函数

        var _getUser=function(名字){   var sql=" SELECT * FROM " +表+“user_loginname=" +名称+“”;   连接。查询(sql函数(呃,结果){   如果(!犯错){   var res=hasUser(结果);   返回res;   其他}{   返回错误();   }   });   函数hasUser(结果){   如果结果。长度==0){   返回{犯错:1、味精:“此用户名不存在"};   }   其他{   返回结果[0];   }   }   函数误差(){   返回{犯错:1、味精:“数据库出错"};   }   }   var getUser=function(名字){   返回_getUser(名称);   }      

获取结果处理事件

     //获取柱上来的数据数据中uname的值   var uname=req.body.uname;   var用户=getUser (uname);   如果(User.err) {   res.status (404)   其他}{   var upwd=md5 (req.body.upwd);//查询到匹配用户名的信息,但相应的密码属性不匹配   如果(upwd !=User.user_passwd) {   req.session。错误="密码错误”;   res.send (404);//res.redirect("/登录");   其他}{//信息匹配成功,则将此对象(匹配到的用户)赋给会话。用户并返回成功   req.session。用户={名称:uname,密码:upwd};   res.status (200) .send(“成功”)//res.send (200);//res.redirect (“/home”);   }   }//md5方式加密   函数md5(文本){   返回crypto.createHash (md5) .update(文本).digest(十六进制);   };      

<强>正确示范

  

获取数据库中的数据函数

        var _getUser=函数(名称、回调){   var sql=" SELECT * FROM " +表+“user_loginname=" +名称+“”;   连接。查询(sql函数(呃,结果){   如果(!犯错){   var res=hasUser(结果)   回调(res);   其他}{   回调(错误());   }   });   函数hasUser(结果){   如果结果。长度==0){   返回{犯错:1、味精:“此用户名不存在"};   }   其他{   返回结果[0];   }   }   函数误差(){   返回{犯错:1、味精:“数据库出错"};   }   }   var getUser=函数(名称、回调){   返回_getUser(名称、回调);   }      

获取结果处理事件

     //获取柱上来的数据数据中uname的值   var uname=req.body.uname;   getUser (uname、功能(数据){   var=用户数据;   如果(User.err) {   res.status (404)   其他}{   var upwd=md5 (req.body.upwd);//查询到匹配用户名的信息,但相应的密码属性不匹配   如果(upwd !=User.user_passwd) {   req.session。错误="密码错误”;   res.send (404);//res.redirect("/登录");   其他}{//信息匹配成功,则将此对象(匹配到的用户)赋给会话。用户并返回成功   req.session。用户={名称:uname,密码:upwd};   res.status (200) .send(“成功”)//res.send (200);//res.redirect (“/home”);   }   }   });//md5方式加密   函数md5(文本){   返回crypto.createHash (md5) .update(文本).digest(十六进制);   };      

<强>总结

  

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接

mysql nodejs同步调用获取数据时遇到的大坑