Я работаю над частью регистрации, которая выполняет некоторую проверку на стороне сервера, прежде чем вводить данные в mongo. Я очень новичок в mongoose, и у меня возникают проблемы с возвратом данных в метод, который завершает весь процесс регистрации.Как вернуть значения из запроса Mongoose
В моем контроллере локомотива у меня есть метод, который завершает все, чтобы начать процесс регистрации.
auth = new Authenticator();
auth.signUp(this.req.body);
Внутри моего объекта auth signUp просто выполняется проверка данных перед созданием нового пользователя. Одна проверка состоит в том, что в базе данных уже нет дублированного письма.
this.signUpUser = function(user) {
if(this.isNotDuplicate(user.email) {
//continue doing whatever needs done to the data afterwards
} else {
response['error'] = True
response['response'] = "duplicate email"
}
}
Один из методов, который я пытаюсь найти, соответствует адресу, который соответствует и возвращает true или false.
this.isNotDuplicate = function(email) {
query = user.findOne({ 'email': email });
query.exec(function(error, user) {
if(error) {
console.log(error);
}
console.log(user);
return (user === null) ? false : true;
});
}
Если я прохожу по электронной почте в базе данных, там я могу видеть пользователь, когда я использую console.log(), но это не позволяет мне ничего возвращать, если это не локомотивы возвращают объект ответа. Но мне нужно иметь возможность продолжать обработку данных. Я понимаю, что могу сделать это просто совершенно неправильно, поэтому, если мой дизайн плох, мне нужно объяснение того, как изменить его для работы с node.js, express и locomotive.
Я прочитал документацию mongoose по запросам (http://mongoosejs.com/docs/queries.html). В своих примерах они используют console.log(), но, конечно, есть способ использовать данные, которые вы извлекаете из мангуста в другом месте, а не только в запрос мангуста. Если мой дизайн плохо идет по этому маршруту, как было бы предложено его изменить? Или как я могу просто вернуть либо данные из запроса мангуста, либо другое значение для использования?
Это работает благодаря за помощь. Я действительно новичок в приложениях nodejs, поэтому очевидно, что мне нужно больше разбираться в асинхронных методах и приложениях. – lumberjacked