常に同じテキストファイルを返す、HTTP のサーバを書いてください。

サーバは最初の引数で供給されているポートをリッスンするサーバです。

二つ目の引数は、返すテキストファイルのパスです。ファイルを返すためは fs.createReadStream() を使わないといけません。


ヒント

今回は HTTP 専用サーバになりますので一般的な TCP サーバより Node.js の http コアモジュールを使った方がよいです。 net モジュールと同じく http.createServer() 関数があります。たたそのサーバが受信するのは HTTP リクエストです。

http.createServer() の第一引数であるリスナー関数は毎コネクション時に呼ばれます。

一般的なHTTPリクエストリスナー関数の例:

function listener (request, response) { /* ... */ }

上記の例の二つの引数は HTTP のリスナーにおける代表的なものです。第一引数の request には HTTP のプロパティが入ります。例えば:ヘッダーやクエリ文字列。第二引数の response はクライアントにヘッダーやボディを返す為のオブジェクトです。

requestresponse は Node.js における Stream です!Stream なので、他の Stream 由来のシステムとの送受信にうってつけです。

http.createServer() はあなたのサーバのオブジェクトを返します。ポートをリッスンするためにサーバオブジェクトの server.listen(portNumber) を呼んでください。

一般的な Node.js の HTTP サーバはこのように記述されています:

var http = require('http')
var server = http.createServer(function (req, res) {
  // request handling logic...
})
server.listen(8000)

http モジュールのドキュメントはブラウザーでこのリンクを見てください: /node_apidoc/http.html

fs と言う Node.js のコアモジュールにはファイルを stream できる API があります。コマンドラインの第二引数(テキストファイルへのパス)を fs.createReadStream() に渡すとそのファイルを表す Stream オブジェクトがもらえます。その Stream は src.pipe(dst) を使って src の Stream を dst の Stream に繋げることができます。このようにファイルのデータ Stream は HTTP のレスポンス Stream に繋げられます。