我有這種疑問,真的不是問題,但我想知道如果我的實際結構來處理請求和響應是非阻塞的。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')
,當然還有在路由器歸檔處理,但我不知道什麼時候我的代碼是異步,當它不是。
那麼,有人可以解釋我,如果這是一個異步非阻塞代碼?如果不是,請提供一些文檔或庫?我嘗試使用promise,但它在執行時會引發一些錯誤(我認爲這是因爲我很小巧)。
就是這樣,在此先感謝!
您可以通過在get函數最底部的exec回調和console.log('找到'之前)添加console.log('found')來檢查Client.find是否被阻塞。 「發現之前」應先顯示,當數據庫結果回來時,你應該看到「發現」 – Molda
是的! 「之前」的信息出現,好吧,哈哈之前。所以我可以說代碼是異步的,對嗎? – Nano
它已被證明是我quess :) nodejs沒有等待數據庫的結果,並進行處理和聲音的異步給我。 – Molda