Node.jsでHello World!を表示するWebサーバーを作ってみよう

2024-04-02

Node.js を簡単な Web サーバーとして使う

準備

まず、Node.js がインストールされている必要があります。インストールされていない場合は、Node.js の公式サイトからダウンロードできます。

コード

以下のコードは、"Hello World!" という文字列をブラウザに表示する簡単な Web サーバーを作成します。

const http = require('http');

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

server.listen(3000);

console.log('Server running at http://localhost:3000/');

コードの説明:

  1. http モジュールを require します。
  2. http.createServer() メソッドを使ってサーバーを作成します。
  3. サーバーの request イベントにリスナーを設定します。
  4. リスナーの中で、レスポンスヘッダーを設定し、"Hello World!" という文字列を書き込み、レスポンスを終了します。
  5. サーバーをポート 3000 で起動します。
  6. サーバーが起動したことをコンソールに出力します。

実行

上記のコードをファイルに保存し、以下のコマンドを実行してサーバーを起動します。

node server.js

ブラウザで http://localhost:3000 を開くと、"Hello World!" という文字列が表示されます。

Node.js を使って簡単な Web サーバーを作成する方法を解説しました。今回紹介したコードは基本的なものです。より複雑な Web サーバーを作成するには、追加のモジュールや機能を学習する必要があります。

Node.js を使って Web サーバーを作成する方法は、今回紹介した以外にも様々な方法があります。自分の目的に合った方法を見つけて、Web サーバーを作ってみてください。




// 必要なモジュールのインポート
const http = require('http');
const fs = require('fs');

// サーバーの作成
const server = http.createServer((req, res) => {
  // リクエストされたファイルのパスを取得
  const filePath = req.url === '/' ? './index.html' : `./public${req.url}`;

  // ファイルが存在するかどうかを確認
  fs.exists(filePath, (exists) => {
    if (exists) {
      // ファイルが存在する場合、読み込んでレスポンスとして送信
      fs.readFile(filePath, (err, data) => {
        if (err) {
          // ファイルの読み込みに失敗した場合、エラーメッセージを送信
          res.writeHead(500, {'Content-Type': 'text/plain'});
          res.write('Error reading file');
          res.end();
        } else {
          // ファイルの読み込みに成功した場合、ファイルの内容を送信
          res.writeHead(200, {'Content-Type': 'text/html'});
          res.write(data);
          res.end();
        }
      });
    } else {
      // ファイルが存在しない場合、404 エラーメッセージを送信
      res.writeHead(404, {'Content-Type': 'text/plain'});
      res.write('File not found');
      res.end();
    }
  });
});

// サーバーの起動
server.listen(3000, () => {
  console.log('Server running at http://localhost:3000/');
});

コードの説明

必要なモジュールのインポート

  • http: HTTP サーバーを作成するためのモジュール
  • fs: ファイルシステムへのアクセスを提供するモジュール

サーバーの作成

リクエスト処理

サーバーの request イベントにリスナーを設定します。リスナーは、クライアントからのリクエストを受け取った時に呼び出されます。

ファイルの読み込み

リクエストされたファイルのパスを取得し、fs.exists() メソッドを使ってファイルが存在するかどうかを確認します。

ファイルが存在する場合は、fs.readFile() メソッドを使ってファイルの内容を読み込み、レスポンスとして送信します。

ファイルが存在しない場合は、404 エラーメッセージを送信します。

server.listen() メソッドを使ってサーバーを起動します。

実行方法

node server.js
  • このサンプルコードは、基本的な Web サーバーの例です。
  • より複雑な Web サーバーを作成するには、追加のモジュールや機能を学習する必要があります。
  • サンプルコードは自由に変更して使用できます。



Node.js で Web サーバーを作成する他の方法

Express フレームワークを使う

Express は Node.js で最も人気のある Web フレームワークの一つです。Express を使うと、簡単にルーティングやミドルウェアを設定することができます。

Koa は Express よりも新しい Web フレームワークです。Koa は軽量で、より柔軟な設定が可能です。

Hapi はエンタープライズレベルの Web アプリケーション開発に適したフレームワークです。Hapi は強力な機能と拡張性を備えています。

NestJS は TypeScript で書かれた Web フレームワークです。NestJS は オブジェクト指向プログラミング (OOP) と関数型プログラミング (FP) の両方の要素を取り入れています。

サーバーサイド JavaScript フレームワークを使う

Next.js や Nuxt.js などのサーバーサイド JavaScript フレームワークを使うと、クライアントサイドレンダリング (SSR) などの機能を利用することができます。

どの方法を選ぶべきかは、開発する Web サーバーの目的や規模、開発者のスキルセットによって異なります。

以下は、それぞれの方法のメリットとデメリットです。

  • メリット
    • 豊富な機能
    • 大規模なコミュニティ
    • 学習リソースが豊富
  • デメリット
  • メリット
    • 軽量で高速
    • 柔軟な設定が可能
  • デメリット
    • Express ほど機能が豊富ではない
  • メリット
    • 強力な機能
    • 拡張性が高い
  • デメリット
    • 学習曲線が急
  • メリット
    • テストしやすい
  • デメリット
  • メリット
    • SSR などの機能を利用できる
    • SEO に有利
  • デメリット

Node.js で Web サーバーを作成するには、様々な方法があります。どの方法を選ぶべきかは、開発する Web サーバーの目的や規模、開発者のスキルセットによって異なります。

自分に合った方法を見つけて、Web サーバーを作ってみてください。


node.js server webserver


Express.js で GET リクエストのクエリ文字列から変数を取得する方法

req. query オブジェクトは、GET リクエストのクエリ文字列のパラメータをすべて含むオブジェクトです。 このオブジェクトを使って、個々のパラメータにアクセスすることができます。例:この例では、req. query. name と req...


Node.jsをパッケージマネージャーを使って更新する方法

NVM (Node Version Manager) は、Node. jsのバージョン管理ツールです。 NVMを使うと、複数のバージョンのNode. jsを簡単にインストール、切り替え、削除することができます。NVMをインストールしていない場合は、以下のコマンドを実行してインストールします。...


【完全解決】Node.jsで「npm install」が失敗する「cannot run in wd」エラーの対処法5選

Node. jsでnpm installを実行中に「cannot run in wd」エラーが発生した場合、いくつかの原因が考えられます。このエラーは、主にWindows環境でNode. jsを管理者権限で実行していない場合に発生します。エラーの原因...


Amazon Linux に Node.js をインストールする方法

このチュートリアルでは、Amazon Linux インスタンスに Node. js を yum コマンドを使ってインストールする方法を解説します。必要なものAmazon Linux インスタンスSSH クライアント手順以下のコマンドを実行して、Node...


npmコマンドが実行できない?エラーメッセージ"sudo: npm: command not found"の意味と解決策

sudo npm: command not found エラーは、npm コマンドがシステムにインストールされていない、または実行権限がないために発生します。このエラーは、Node. js を使用して開発を行う際に、npm コマンドを使ってパッケージをインストールしようとしたときに発生します。...


SQL SQL SQL SQL Amazon で見る



Node.jsでファイル/ディレクトリが存在するかどうかを非同期的に確認する方法

まず、fsモジュールを読み込みます。existsSync()メソッドは、ファイルパスを受け取り、そのファイルが存在するかどうかを同期的に確認します。上記のコードは、./my-file. txtファイルが存在するかどうかを確認します。ファイルが存在する場合は、ファイルが存在しますと出力し、存在しない場合は、ファイルが存在しませんと出力します。


Node.jsでファイル共有!ローカルネットワークでファイルサーバーを構築

まず、Node. jsをインストールする必要があります。以下のコマンドを実行してインストールできます。次に、プロジェクトフォルダを作成して、そこに以下のファイルを作成します。index. js:サーバーのコードpackage. json:プロジェクトの設定ファイル


エラー解決:JavaScript、ECMAScript 6、ArcGIS で発生する "Uncaught SyntaxError: Cannot use import statement outside a module" エラーの解決方法

このエラーは、JavaScript で ECMAScript 6 (ES6) の import ステートメントを使用してモジュールを読み込もうとしたときに発生します。このエラーは、次のいずれかの理由で発生する可能性があります。スクリプトがモジュールとして実行されていない。