2018年1月21日日曜日

【Node.js】レスポンスを返した後の処理はどうなるのっと

前回は、リクエストを処理中にクライアントからの接続が切れた場合、残りの処理がどうなるのかを調べました。

今回は、レスポンスを返した後の処理について調べてみます。


準備

まずは前回同様、簡単なWebサーバをつくってみる。
var http = require("http");

http.createServer(function(request, response) {
    response.writeHead(200, {"Content-Type": "text/plain"});
    response.end("( ಠ_ಠ)");
}).listen(3000);
そしてこれを、出力後5秒経過したらコンソールにも出力するように改造。
var http = require("http");

http.createServer(function(request, response) {
    console.log("begin");
    response.writeHead(200, {"Content-Type": "text/plain"});
    response.end("( ಠ_ಠ)");

    // 5秒後にコンソールに出力
    setTimeout(function() {
        console.log("end");
    }, 5000);
}).listen(3000);

手順

このサーバを実行して、http://127.0.0.1:3000/にアクセス。ブラウザに顔文字が表示されますが、コンソールには何が出力されるのでしょうか。

ここから先はキミ自身の目で確かめてくれ! 

まとめ

前回同様、やっぱり応答が終わってもサーバ側の残りの処理はまだ生きています。

これを利用して、例えばHTMLの出力が終わったあとでバックグラウンドでメールを送信とかできそうですね。

0 件のコメント:

コメントを投稿