У меня есть функция, восстанавливающая сообщения в блоге из базы данных. Эта же функция используется для сообщений в блогах определенной категории. Это запрос:Необязательный пошаговый шаг, основанный на параметре запроса
Post.find(params).limit(5)
Однако когда категория должна быть посмотрел, идентификатор категории должен быть получен первый (запрос-парам является его постоянная ссылка):
Category.findOne({ permalink: req.params.category})
Как может Я использую обещание, чтобы предотвратить того, чтобы написать что-то дублировать, как это:
// a category is present
if (typeof req.params.category !== 'undefined'){
Category.findOne({ permalink: req.params.category}).then(function(category){
params.category = category.id
Post.find(params).limit(5).exec(function(err,posts){
// yada-yada
})
}
}
// no category
else {
Post.find(params).limit(5).exec(function(err,posts){
// yada-yada
})
}
Он использует Bluebird обещания, которые означает, что он использует более быстрый супернабор. –