0
ノードjsにresponse.end
に関する混乱があります。次のコードがあります。 ノードjsのresponse.endを持たないHttpサーバー
const http = require("http");
http.createServer(function(req, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});
setInterval(() => {
response.write(new Date() + "\n");
}, 1000)
}).listen(8080);
console.log("Service Running at 8080 127.0.0.1")
は今20秒以上後にブラウザで日付を印刷を開始します。この上記のコードは、今、このコードは、任意の
reponse.end
を持っていない、それは明らかですので、その後
setIntervel
内のコードの任意
response.end()
があった場合決して実行しません。
しかし、これを実行しても、ページをロードするのはいつまでもかかりません。
const http = require("http");
http.createServer(function(req, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});
response.write("Test");
}).listen(8080);
console.log("Service Running at 8080 127.0.0.1");
が、私は上記のコードでresponse.end
を追加する場合、それはうまく動作します。
誰もこの奇妙な行動を説明することができます。その理由は、setInterval
をresponse.end
なしで使用する理由です。
あなたが 'response.write(" Test \ n ")' – slebetman
を実行した場合、何が起こるのですか?ページが要求されても何も起こらず、しばらくしてからPageが応答しないなどのエラーが発生します。 –
"なぜresponse.endを使用せずにsetIntervalを使用するか"。最初のコードが動作していると言っていますか? –