處理快速路由中自定義事件偵聽器的最佳方式是什麼?快速路線中的自定義事件偵聽器
我可能做的一切都是錯誤的,但這裏是我的時刻:
module.exports = {
get: function(req, res, next) {
MyModel.on('error', function(err) {
res.send(501)
})
MyModel.on('found', function() {
res.send(200)
})
MyModel.on('notFound', function() {
res.send(404)
})
MyModel.findByName(req.params.name);
}
}
我可以看到這是完全錯誤的,因爲每個事件監聽器在每次請求加入。
開始傳遞響應對象以促進事件觸發時的響應也感覺不對。
我可以在findByName方法上使用回調函數,但我真的很喜歡綁定到事件系統,但我只是想知道如何更好地處理這種情況。
我原來是這樣的,但我試圖限制使用回調可能發生的嵌套量。我想在這種情況下,它會起作用,並在事情需要更深入時添加事件監聽器。 – Nick 2013-03-19 14:14:27
2件事情:1,如果你沒有用回調下來,你正在使用錯誤的編程環境,期間。這就像試圖做lisp,除非你討厭括號。 2. Model類本身的事件偵聽器只會處理尚未由回調處理的事件,並且不會正確地構造程序以使您可以訪問所需的請求和響應對象。使用命名函數和流控制庫管理嵌套,但使用回調並烘焙到節點的核心中。 – 2013-03-19 14:22:09
我完全沒有回調問題,但它是關於爲工作選擇正確的工具。事件監聽器也是節點的一個非常核心的部分(事實上,事件循環使得節點如此強大)。請更有建設性。 – Nick 2013-03-19 16:00:13