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モジュールの章をご覧ください。