Это чисто вопрос о передовой практике. Я новичок в Node и Mongoose. Мне очень нравится эта технология, и я работаю над проектом по созданию API на основе JSON -для приложения, которое я создаю.
Я обнаружил, что постоянно повторяю код, когда извлекаю объекты из своей базы данных. Например:
Playlist.findById(req.params.id, function(err,playlist){
if (err)
return res.json({error: "Error fetching playlist"});
else if (!playlist)
return res.json({error: "Error finding the playlist"});
//Actual code being performed on the playlist that I'm fetching
});
Обработка ошибок в начале вызова функции раздражает, потому что мне приходится повторять этот код для каждого обращения к базе данных... или я так думаю.
Я думал об использовании обратного вызова, подобного:
var fetchCallback = function(err,objOrDoc,callback){
//Handle the error messages
callback(objOrDoc);
};
Однако такой подход испортил бы мой последовательный поток, поскольку мне пришлось бы определять функцию обратного вызова до выполнения выборки. Таким образом, если бы у меня было много запросов к базе данных, связанных вместе, мне пришлось бы размещать обратные вызовы в обратном порядке, что далеко не идеально с точки зрения чистого -кодирования.
Мне интересно, сталкивался ли кто-нибудь с этой проблемой и есть ли какие-либо рекомендации по сокращению повторений.
Я также использую экспресс-фреймворк, поэтому, если есть полезный способ справиться с этим в экспрессе, мне тоже было бы интересно узнать.