Использую поиск в mongoose в callback, в callback можно получить результат поиска по БД с помощью mongoose, теперь вопрос. Как можно извлечь эти результаты из callback, чтобы использовать их дальше. Вот сам код, надеюсь он будет понятнее.
.validateRegistration(function (newUserAttrs, errors) {
var login = newUserAttrs.login;
var confirmPassword = newUserAttrs.confirmPassword;
if (!confirmPassword) errors.push('Missing password confirmation')
if (newUserAttrs.password != confirmPassword) errors.push(confirmPassword);
User.find({ login: login }, function (err, newUser) {
if (newUser || err) {
errors.push('Login already taken');//собственно это мне и нужно
}
});
return errors;
})
Если в функции вызывается нечто асинхронное, то и сама функция может быть только асинхронной (так как нельзя вернуть то, чего пока ещё нет и оно станет известно позже). Потому делайте функцию асинхронной и передавайте в неё callback, который вызывайте уже после того, как массив errors будет окончательно сформирован (в данном случае - в самом глубоком вложенном callback'е)