Проблема
Javascript is asyn c по своей природе означает, что не выполняет такие команды, как доступ к сети, синхронно, например C, C ++ или Java.
Решение
Обещания здесь для спасения.
Вам нужно сделать что-то вроде этого:
var users = user.find().where("usertype").equals("superuser").select("username password").exec();
users.then(function(user) {
if(users.isArray && users.length==0) {
console.log("exists");
answer[0].password="exist_pwd";
} else {
console.log("empty");
answer[0].password="empty_pwd";
}
})
РЕДАКТИРОВАТЬ
Просто JS однопоточный означает одну вещь в время, но когда он видит любой запрос доступа к сети, такой как вызов API, он перемещает эту инструкцию в другое место в браузере, где она выполняется, и JS продолжает выполнение следующих инструкций, когда все инструкции выполнены, перемещенная часть, которая где-то была выполнена иначе, это результат слиться.
Отлично ресурс , чтобы получить идею.