У меня есть это сомнение, на самом деле это не проблема, но я хочу знать, не связана ли моя фактическая структура обработкой запросов и ответов.Запросы и ответы Expressjs маршрутов асинхронны?
Некоторые из моего кода выглядит следующим образом:
get: (req, res) ->
permission = req.user.username
if not permission
return res.json new Unauthorized("#{req.user.username} no tiene permisos")
Client.find()
.exec (err, clients) ->
if err then res.json new Internal(err.message, err.stack)
if not clients then res.json new NotFound('No encontrado')
res.json new Ok(clients, 'OK')
И, конечно, обрабатывается в архиве маршрутизатора, но я не знаю точно, когда мой код асинхронный и когда это не так.
Итак, может ли кто-нибудь объяснить мне, является ли это асинхронным неблокирующим кодом? Если это не так, пожалуйста, немного документации или библиотек? Я попытался использовать promjs, но это порождает некоторые ошибки в выполнении (я думаю, это потому, что im pretty noob).
Это все, спасибо заранее!
Вы можете реально проверить, заблокирован ли Client.find, добавив console.log ('found') в обратный вызов exec и console.log ('before found') в самом низу функции get. «before found» должен отображаться первым, и когда результаты от db возвращаются, вы должны увидеть «найденный» – Molda
Да! появляется сообщение «before», ну, до ха-ха. Могу ли я сказать, что код асинхронный, не так ли? – Nano
Это доказало, что я не хочу :) nodejs не дождался результата из db и продолжил обработку и асинхронный звук этого звука. – Molda