【发布时间】:2014-03-01 12:20:31
【问题描述】:
我尝试了以下代码。
function authenticate( accesskey ) {
var res = someModel.findOne( {'uid': accesskey}, function ( err , user) {
if(err){
console.error("Can't Find.!! Error");
}
if(user===null){
return false;
}
else{
console.log(user);
return true;
}
});
console.log(res);
return res;
}
但是res这里返回的是猫鼬数据类型。
我希望像这样调用认证函数 -
if(authenticate(req.params.accesskey)){
//do something
}
else{
//do something else
}
实施 Mustafa Genç 解决方案后的更新
在熟悉了回调之后,我最终得到了以下代码。
function authenticate( req, result, accesskey, callback ) {
var auth = null;
someModel.findOne( {'uid': accesskey}, function ( err , user) {
console.log("try authenticate");
if(err){
console.error(err);
}
if(user===null)
auth = false;
else
auth = true;
callback(auth);
});
}
我是这样使用它的 -
routeHandler( req, reply ) {
authenticate( req, reply, req.params.accesskey , function (auth) {
if(auth) {
//"primary code"
}
else {
//fallback
}
});
}
【问题讨论】:
标签: javascript node.js mongodb asynchronous mongoose