Hallo Leute, ich würde gerne zum ersten mal Promise einsetzen und kriege das nicht so recht hin.
Situation: Aus meiner Router kommt bsp. eine Anfrage: getBooks.
Die ganze Abfrage mit callback, möchte ich in einem promise verstecken.
D.h. bei myPromise.then(....sende eine Antwort).catch(....sende status 500)
So stelle ich mir das vor. Vllt. gibt es schönere Wege.
mein Code
Irgendwie bekomme ich "undefined" für req, res.
Habe ich hier ein Design-Fehler? wie könnte ich am besten die Callsbacks verstecken in diesem Fall?
Danke für jeden Tipp.
Situation: Aus meiner Router kommt bsp. eine Anfrage: getBooks.
Die ganze Abfrage mit callback, möchte ich in einem promise verstecken.
D.h. bei myPromise.then(....sende eine Antwort).catch(....sende status 500)
So stelle ich mir das vor. Vllt. gibt es schönere Wege.
mein Code
Code:
function getBooks(req, res) {
/*Promise ansprechen*/
promiseBooks(req, res);
}
function promiseBooks(req, res){
/*Promise starten*/
return Bookmark.find({}).exec();
}
/*Promise ausführen*/
promiseBooks(req, res).then(function(books){
if(books.length===0){
logger.warn('No books availible');
res.status(200).json({
bookmarks: books
});
}else if(books === undefined){
res.status(500).json({
bookmarks: bookmarks
});
}else{
res.status(200).json({
bookmarks: books
});
}
})
.catch(function(err){
logger.error({error:err},'FAIL TO RETRIVE BOOKS');
res.status(500).json({
books: books
});
});
Irgendwie bekomme ich "undefined" für req, res.
Habe ich hier ein Design-Fehler? wie könnte ich am besten die Callsbacks verstecken in diesem Fall?
Danke für jeden Tipp.