ループ処理はI/Oイベントの処理の実行時や、I/Oイベントの発生待機のオブジェクト(ハンドル)の登録時に維持される。
以下のコードは、ハンドルもしくはリクエストが何も登録されていないために、
イベントループが維持されない。
つまり、このコードを実行するとnodeプロセスはすぐに終了します。
var http =require('http');
var server= http.createServer(function(){}); //プロセスはすぐに終了する
ここで、上記のコードに対して、server.listen()を加えることにより、ハンドル登録が行われる。 ハンドル登録時にループ処理が維持されるので、 以下のコードの場合、nodeのプロセスは終了しません。 var server= http.createServer(function(){}); //プロセスはすぐに終了する
var http =require('http');
var server=http.createServer(function(){});
server.listen(1400);
登録されたハンドルは、APIにより削除できる。 server.close()によりハンドル削除を行ったため、イベントループは維持されない。var server=http.createServer(function(){});
server.listen(1400);
var http =require('http');
var server=http.createServer(function(){});
server.listen(1400,function(){
server.close();//ハンドルが削除され、イベントループ終了 );
var server=http.createServer(function(){});
server.listen(1400,function(){
server.close();//ハンドルが削除され、イベントループ終了 );