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(十六进制);};
<强>总结强>
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接