Я часто сталкиваются с проблемами в плане дизайна, если дело доходит до этой точки:Избежание локальные переменные
var pages,
book
;
Book.findOne({ title: "First Book" }, function(err, doc) {
pages = doc.pages;
console.log(pages);
});
res.json(pages, 200);
pages
не определен, хотя я поставил его в doc.pages
. Если я переведу res.json(pages, 200)
в обратный вызов findOne
, этот скрипт отлично работает.
Я следую неправильному шаблону/кодовому дизайну, когда дело доходит до JavaScript, или есть решение оставить res.json()
вне callback, помимо создания pages
глобального?
Да, это прекрасно. Я уже предполагал, что это более распространенное использование patten в Javascript для работы через Callbacks, так как код выполняется asynchroniosly, а не строго из одной строки в другую. Код –
@ daemonfire300 не выполняется асинхронно. Обратные вызовы называются асинхронно. – fent