क्योंकि findOne
async है फ़ंक्शन, इससे लौटने का एक तरीका callback
. के माध्यम से है समारोह
module.exports.isAdmin = function(user_id, callback) {
var params = {'roles': 'admin'};
dao.findOne(params, function(err, user) {
if (err) {
logger.error(err);
callback && callback(false);
}
if (_.indexOf(user.roles, 'admin') != -1) {
logger.info("admin user: " + user._id);
if (user._id == user_id)
callback && callback(true);
}
callback && callback(true);
});
};
isAdmin(userId, function(v) {
console.log(v);
})
दूसरा तरीका है वादा प्राप्त करना findOne
में
, जैसा कि इस दस्तावेज़ ने कहा, .exec()
आपको एक पूर्ण वादा देता है। यहां तक कि Promise
. के साथ भी , आपकी आवश्यकता को पूरा करने के लिए, परिणाम कॉलबैक फ़ंक्शन के माध्यम से वापस किया जा सकता है।
module.exports.isAdmin = function(user_id, callback) {
var params = {'roles': 'admin'};
var queryPromise = dao.findOne(params).exec();
queryPromise.then(function(user) {
if (_.indexOf(user.roles, 'admin') != -1) {
logger.info("admin user: " + user._id);
if (user._id == user_id)
callback && callback(true);
}
}, function(err) {
callback && callback(false);
});
};