2011-12-14 10 views
1

私はNode.jsの初心者で、いくつか質問があります。node-jsイベントループとスコープ

まず、空の.jsファイルでnodeを実行すると、ノードは終了します。 .jsファイルのノードを単純な割り当てで実行すると、ノードも終了します。私が尋ねるのは、node.jsイベントループは、EventEmitterが作成されたときにのみ実行されるということですか?

第2に、現在、httpリクエストを受信するたびに、httpを使用してTwilioを使用してSMSを送信しています。私が使用しているラッパーはhttps://github.com/sjwalter/node-twilio/tree/master/lib

です。新しいTwilioClientを作成すると、process.exitを呼び出すまでイベントループが実行されます。各HTTPリクエストハンドラ内に新しいTwilioClientを作成するか、.jsファイルの先頭に作成してハンドラ内で使用する必要がありますか?違いはありますか?

答えて

1

RubyのEventMachineとは異なり、ノードのループを手動で閉じる必要はありません。 Node.jsは、処理がすべて完了した時点を知るのに十分にスマートで、自動的に終了します。

これを念頭に置いておくと(httpリクエストハンドラはprocess.exitを呼び出して手動で閉じる場合は、永遠に閉じることができます)、HTTPリクエストの外に1つのTwilioClientを作成し、httpリクエスト(これはデータベースハンドラにとっては同じ状況です)。

+0

つまり、node.jsイベントループは、Webブラウザのイベントループとまったく同じように動作します。イベントを待っているものがあれば、イベントループは継続して実行されます。このように考えることは、いくつかの人にとってあまり混乱しないかもしれません。特にWebプログラミングの経験がある方。 – slebetman

+0

ここには2つの役に立つリソースがあります。http://code.danyork.com/2011/01/25/node-js-doctors-offices-and-fast-food-restaurant-understanding-event-driven-プログラミング/ http://www.slideshare.net/sh1mmer/how-to-stop-writing-spaghetti-code – alessioalex

関連する問題