Node.js はじめてのサーバ側処理

前回の記事でHelloWorldを作ってみたので
今回はNode.jsの基本である(らしい)HTTPサーバを作ってみます。

HTTPサーバの作成

コード

まずは参考書をまねしてコーディングする。

helloHttp.js

var http = require('http');
// サーバの作成
var server = http.createServer(function(req,res){

    res.writeHead(200,{'Content-Type':'text/html'});
    res.end('<h1>Hello! HTTP! Node.js!</h1>');
    
});

// 8080ポートを受け付け
server.listen(8080);
console.log('server Start on 8080');

実行

コーディング後、コマンドプロンプトにて実行する

>node helloHttp.js

f:id:taiga1021kou:20170311143731p:plain
実行すると、console.logに記載していた箇所が表示される。


無事表示できたところでhttpリクエストを投げてみる。

ブラウザを立ち上げ、URLに「http://localhost;8080/」と入力。

f:id:taiga1021kou:20170311143747p:plain
レスポンスとしてres.end();の内容が返ってきた。

内容

サーバ作成

まず1行目

var http = require('http');

どうやらimport処理のようなもので、http通信をする際に必要なモジュールの読み込みをしているらしい。

3行目~

var server = http.createServer(function(req,res){

)}

読み込んだモジュールを使いサーバの作成をやってくれているっぽい。
req はリクエスト、res はレスポンスの値が入っているのかな。

HTTP作成

    res.writeHead(200,{'Content-Type':'text/html'});
    res.end('<h1>Hello! HTTP! Node.js!</h1>');

HTTPヘッダの作成とHTTPの中身の作成ですね。
中身の記載方法ですが、参考資料では上のように書いてましたが、
別のサイトを見る限り以下でも行けそうです。

    res.writeHead(200,{'Content-Type':'text/html'});
    res.write('<h1>Hello! HTTP! Node.js!</h1>');
  res.end();

と、いうかこちらのほうがメソッド名的に正しそう。

待ち受けポート設定

最後

// 8080ポートを受け付け
server.listen(8080);

待ち受けるポートの設定です。
ここで設定したポートをURLに指定しないと、接続できませんね。
試しに4649ポートに書き換えた後に同じURLで接続に行っても失敗します。

// 4649ポートを受け付け
server.listen(4649);

f:id:taiga1021kou:20170311180619p:plain

感想

数行でサーバを立てられるのはすごいな。
今まで私が触ってきたのは、TomcatJavaでサーバを立てたり、IISを使ってサーバを立てたりしていました。
とにかくサーバ用のアプリケーションを入れて、別途設定等が必要だったのですが、Node.jsではいとも簡単にできてしまうんですね。

次は、HTML+CSS+JavaScript+Node.jsの連携をしてみたいです。