2011-12-14 50 views
1

我真的是Node.js的初學者,我有一些問題。node-js事件循環和範圍

首先,如果我在一個空的.js文件上運行節點,它會終止。如果我用一些簡單的賦值在.js文件上運行節點,它也會終止。我問的是,node.js事件循環僅在創建EventEmitter時才運行?

其次,目前,我每次收到http請求時都使用http發送使用Twilio的SMS。我使用的包裝是https://github.com/sjwalter/node-twilio/tree/master/lib

如果我創建一個新的TwilioClient,事件循環會運行,直到我調用process.exit。我應該在每個http請求處理程序中創建一個新的TwilioClient,還是應該在.js文件的開頭創建一個並在處理程序中使用它?這有什麼不同嗎?

回答

1

與Ruby的EventMachine不同,Node的循環不需要手動關閉。 Node.js足夠聰明,知道它何時完成處理並自動終止。

考慮到這一點(如果要通過調用process.exit手動關閉它,http請求處理程序將永遠運行或關閉),只需要在http請求外部創建1個TwilioClient並在http內部使用它請求(這與數據庫處理程序的情況相同)。

+0

換句話說,node.js事件循環的行爲與Web瀏覽器中的事件循環完全相同:如果有任何事件等待事件,事件循環將繼續運行,否則它將終止。以這種方式思考可能不會讓一些人感到困惑。特別是如果你有網絡編程經驗。 – slebetman 2011-12-14 08:36:44