Мне было интересно, каков стандартный способ возврата данных из метода Mongoose. Из примеров, которые я видел в Интернете, кажется, что наиболее распространенный способ сделать это - включить обратный вызов в качестве аргумента в метод.
Так, например, у меня может быть метод findFriends в моей модели User
UserSchema.methods.findFriends = callback => {
...
return callback(null, friends);
};
Чтобы затем использовать этот метод в своем приложении, я заставил вещи работать, создав обещание. Но мое решение кажется довольно неуклюжим и, вероятно, не лучшей практикой. Должен ли я выполнять обещания в методе на UserSchema? Я никогда не видел, чтобы это делалось так, поэтому мне было любопытно узнать о некоторых других взглядах на это.
const user = User.findOne();
friendsPromise = new Promise((resolve, reject) => {
user.findFriends((error, friends) => {
if(! error) {
resolve(friends);
} else {
reject(error);
}
});
});
friendsPromise.then(friends => {
console.dir(friends);
});