I have a simple Node module that exports a function that makes a database query. The problem is that this function returns before the database query completes.
"use strict";
var mongoose = require('mongoose'),
Model = require('./entities/user/model'),
_ = require('underscore');
let dao = new Model(mongoose);
module.exports.isAdmin = function(user_id) {
var params = {'roles': 'admin'};
dao.findOne(params, function(err, user) {
if (err) {
logger.error(err);
return false;
}
if (_.indexOf(user.roles, 'admin') != -1) {
logger.info("admin user: " + user._id);
if (user._id == user_id) return true;
}
return false;
});
};
isAdmin
function searches the users collection in order to find out if user_id
belongs to admin user.
The problem is that isAdmin
function doesn't wait for the response of findOne
query.
How could I force the isAdmin
function to return only when query returns results ?