Node.jsのhttpモジュールでサーバーをつくる。

Node.jsのhttpモジュールを使用したサーバーの作り方です。

必要なもの

  • Node.js
  • npm(Node.jsがインストールされていれば有ります)
  • ターミナル(Mac)、コマンドプロンプト(Win)など

Node.jsは公式インストーラーではなくパッケージマネージャーを使用してのインストールがおすすめです。

windows10でnodistを使ったNode.jsのインストール、バージョン管理

Node.jsのhttpモジュールでサーバーをつくる

ディレクトリの作成

//ディレクトリ作成
mkdir http-server

// 作成したディレクトリに移動 
cd http-server

// npmで新規プロジェクトを作成
npm init

npmで新規プロジェクトを作成すると質問がいくつかありますが全てエンターで問題ありません。今回は作業ディレクトリをhttp-serverとしていますが、適当な名前を設定してください。

ファイルの作成

サーバーをつくるためのファイルを作成します。作業ディレクトリ直下にindex.jsを作成します。

// index.js

'use strict';
const http = require('http');
const server = http.createServer((req, res) => {
    res.writeHead(200, {
        'Content-Type': 'text/plain; charset=utf-8'
    });
    res.write('Hello World');
    res.end();
});
const port = 8000;
server.listen(port, () => {
    console.log(`Server listening on http://localhost:${port}`);
});

index.jsが作成できたら実行します。

httpモジュール読み込み

httpモジュールを使うためにriquireを使ってhttpモジュールを読み込みます。

const http = require('http');

httpモジュールを使ってサーバーをつくる

httpモジュールのcreateServerメソッドでサーバーをつくります。createServerメソッドにはリクエスト(req)とレスポンス(res)の情報を受け取る無名関数を渡します。無名関数内部ではres.writeHeadメソッドでレスポンスヘッダの作成、res.writeメソッドでレスポンスの内容を書き出します。最後にres.endメソッドでレスポンスの書き出しを終了します。Content-Typeは書き出す種類に合わせて変更してください。(例)text/htmlなど

const server = http.createServer((req, res) => {
    res.writeHead(200, {
        'Content-Type': 'text/plain; charset=utf-8'
    });
    res.write('Hello World');
    res.end();
});

listen関数でサーバーを起動

最後にlisten関数でサーバーを起動します。listen関数にはポート番号とサーバー起動時に実行する関数を渡します。

const port = 8000;
server.listen(port, () => {
    console.log(`Server listening on http://localhost:${port}`);
});

作成したファイルの実行

作成したindex.jsファイルを実行します。

node index.js

サーバーが起動してコンソールにServer listening on http://localhost:8000と表示されます。ブラウザでhttp://localhost:8000にアクセスしてHello Worldが表示されているかを確認する。Hello Worldが表示されていれば成功です。