Node.jsHTTPモジュール


組み込みのHTTPモジュール

Node.jsにはHTTPと呼ばれる組み込みモジュールがあり、Node.jsがハイパーテキスト転送プロトコル(HTTP)を介してデータを転送できるようにします。

HTTPモジュールを含めるには、次の require()方法を使用します。

var http = require('http');

WebサーバーとしてのNode.js

HTTPモジュールは、サーバーポートをリッスンし、クライアントに応答を返すHTTPサーバーを作成できます。

次のcreateServer()方法を使用してHTTPサーバーを作成します。

var http = require('http');

//create a server object:
http.createServer(function (req, res) {
  res.write('Hello World!'); //write a response to the client
  res.end(); //end the response
}).listen(8080); //the server object listens on port 8080

メソッドに渡された関数はhttp.createServer() 、誰かがポート8080でコンピューターにアクセスしようとしたときに実行されます。

上記のコードを「demo_http.js」というファイルに保存し、ファイルを開始します。

demo_http.jsを開始します:

C:\Users\Your Name>node demo_http.js

コンピューターで同じ手順を実行した場合、例と同じ結果が表示されます:http:// localhost:8080



HTTPヘッダーを追加する

HTTPサーバーからの応答がHTMLとして表示されることになっている場合は、正しいコンテンツタイプのHTTPヘッダーを含める必要があります。

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/html'});
  res.write('Hello World!');
  res.end();
}).listen(8080);

メソッドの最初の引数はres.writeHead()ステータスコードです。200はすべてがOKであることを意味し、2番目の引数は応答ヘッダーを含むオブジェクトです。


クエリ文字列を読む

に渡される関数にはhttp.createServer()reqクライアントからの要求をオブジェクト(http.IncomingMessageオブジェクト)として表す引数があります。

このオブジェクトには、ドメイン名の後に続くurlの一部を保持する「url」というプロパティがあります。

demo_http_url.js

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/html'});
  res.write(req.url);
  res.end();
}).listen(8080);

上記のコードを「demo_http_url.js」というファイルに保存し、ファイルを開始します。

demo_http_url.jsを開始します:

C:\Users\Your Name>node demo_http_url.js

コンピューターで同じ手順を実行した場合、これら2つのアドレスを開くと2つの異なる結果が表示されます。

http:// localhost:8080 / summer

この結果が生成されます:

/summer

http:// localhost:8080 / winter

この結果が生成されます:

/winter

クエリ文字列を分割する

クエリ文字列をURLモジュールなどの読み取り可能な部分に簡単に分割するための組み込みモジュールがあります。

クエリ文字列を読み取り可能な部分に分割します。

var http = require('http');
var url = require('url');

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/html'});
  var q = url.parse(req.url, true).query;
  var txt = q.year + " " + q.month;
  res.end(txt);
}).listen(8080);

上記のコードを「demo_querystring.js」というファイルに保存し、ファイルを開始します。

demo_querystring.jsを開始します:

C:\Users\Your Name>node demo_querystring.js

住所・アドレス:

この結果が生成されます:

2017 July

URLモジュールの詳細については、Node.jsURLモジュールの章をご覧ください。