Created
November 23, 2012 02:45
-
-
Save noda-sin/4133802 to your computer and use it in GitHub Desktop.
第1回Node.js入門勉強会 レポート課題
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var http = require('http'); | |
server = http.createServer(function (req, res) { | |
res.writeHead(200, {'Content-Type': 'text/plain'}); | |
res.end('Hello World\n'); | |
req.socket.end(); | |
}); | |
server.on('connection', function(socket) { | |
server.close(); | |
}); | |
server.listen(8080, 0, function () { | |
console.log('Server running at http://localhost:8080/'); | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
■課題1 なぜエラーが発生したのかその理由を記述しなさい。 | |
server.close()により、A君は最初のrequest以後のものを受け付けないようにしようとしたが、 | |
server.close()するよりも先に2つ目のrequestに対するhttp requestイベントの発火の方が早いがため、 | |
すでに閉じられたserverに対してserver.close()が実行され、throw new Error('Not running')のエラーが | |
発生している。 | |
ブラウザによっては、favicon取得のrequestを通常のrequestと同時に投げるために起こる現象と考えられる。 | |
■課題2 このプログラムを修正してエラーが発生せずA君がやりたかったプログラムを作りなさい。 | |
上記のことを踏まえた上で、2つ目のrequestが到着する前にserver.close()する。 | |
また、それだけではダメで、コネクションを切ることを明示的に行わなければならない。 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment