nodeJS从callback中返回值
我正在构build一个应用程序,在特定的调用中,我必须阻止并等待来自validation查询的结果,然后再继续。
function authenticate(userid, hash) { mysql_client.query("SELECT `hash` FROM `auth` WHERE `userid` = " + userid, function selectCb(err, results, fields) { if (err) { client.send("Error communicating with mysql, please retry your request"); return false; } if(results.length == 0 || results[0].hash != hash) { client.send("Error comparing authentication data with database, please retry request"); return false; } return true; } ); }
我希望能够从authenticate()函数本身返回这些值,而不是内部匿名函数selectCb,并具有身份validation块,直到callback完成。 我怎么能这样做?
你的外部函数需要提供一个callback本身,可以在mysql调用完成后执行。 一些沿着这条线:
function authenticate(user, pass, callback) { mysql_client.query("...", function (err, results, fields) { if (err) { callback("Error communicating ..."); } else if (results.length ...) { callback("Error comparing authentication..."); } callback() }); });
用法示例:
authenticate('jim', '123456', function (err) { if (err) { alert(err); } else { alert('Welcome'); } });
- socket.io(nodejs)发出的callback是否通过在callback完成期间阻塞服务器来影响服务器的性能?
- 节点 – 等待循环完成?
- Node.JS + Socket.io + MySql:查询callback仅调用2次
- 节点MySQL插入,通过填充3个表格检索具有完整注册stream程的callback的多个表格
- 为什么node.js Express框架在设置会话variables时不使用callback?
- 将parameter passing给Javascript / NodeJs中的预定义callback
- 将附加parameter passing给Javascriptcallback函数
- 强制x客户端等待node.js中客户端y的callback的最佳实践
- 无法使用本地主机上的node.js将消息发送给不在线的人