こういうのは作った人に聞きましょう。
httpはNode.jsが公式に配布しているモジュールなので、
公式ドキュメントに書かれているはずですよ。
私と一緒に追ってみましょうか。
http.createServer - 公式ドキュメント
省略可能な引数はありますが、
最終引数はrequestListener <Function>
ですね。
Listenerというワードや最終引数が関数であることから推測すると、
イベント登録を行うので、条件を満たした時に実行する関数が欲しいと言ってるのでしょうかね?
それらしい記述で説明されています。
The requestListener is a function which is automatically added to the 'request' event.
和訳: requestListener は「request」イベントに自動的に追加される関数です。
リンク付きで説明されているので見に行ってみましょう。
Emitted each time there is a request. There may be multiple requests per connection (in the case of HTTP Keep-Alive connections).
和訳: リクエストがある度に発火します。接続毎に複数のリクエストがあるかもしれません。(HTTP Keep-Alive コネクションの場合)
response.setHeaderのようにメソッドが入っているのはなぜでしょうか。
ようやく本題に回答できますね。
response
の実引数はhttp.ServerResponse
のインスタンスでした。
responseクラスのインスタンスはsetHeaderというメソッドを持っているのでしょうか?
response.setHeader
持っていますね。
Node.jsを作ったチームがこのように宣言しているので
存在して当然というわけですね、めでたし。
もし無かったら「おい!公式ドキュメントに嘘書くな!」案件になります。
最初から公式ドキュメントやリファレンスを追うことは難しいと思いますが、
最初は日本語のブログ記事とかでも大丈夫です。
エラーが出て困ったり、「このメソッドって本当に存在するんか???」という風にハマった時にこういう風に追えるようになっておくとぐっと理解しやすくなります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。