Node.js 入門

Node.js は、オープンソースでクロスプラットフォームの JavaScript 実行環境です。ほぼあらゆる種類のプロジェクトで人気のツールです!

Node.js は、Google Chrome のコアである V8 JavaScript エンジンをブラウザーの外部で実行します。これにより、Node.js は非常に高いパフォーマンスを発揮できます。

Node.js アプリは単一のプロセスで実行され、リクエストごとに新しいスレッドを作成しません。Node.js は、JavaScript コードがブロックされるのを防ぐ非同期 I/O プリミティブのセットを標準ライブラリで提供しています。さらに、Node.js のライブラリは一般的にノンブロッキングパラダイムを使用して書かれています。したがって、Node.js においてブロッキング動作は標準ではなく例外です。

Node.js がネットワークからの読み取り、データベースやファイルシステムへのアクセスなどの I/O 操作を実行する際、スレッドをブロックして CPU サイクルを待機させる代わりに、Node.js は応答が返ってきたときに操作を再開します。

これにより、Node.js は単一のサーバーで数千の同時接続を処理でき、バグの大きな原因となり得るスレッドの同時実行性を管理する負担を導入することなく実現できます。

Node.js には、ブラウザー向けに JavaScript を書く何百万人ものフロントエンド開発者が、全く異なる言語を学ぶ必要なく、クライアントサイドのコードに加えてサーバーサイドのコードも書けるという独自の利点があります。

Node.js では、すべてのユーザーがブラウザーを更新するのを待つ必要がないため、新しい ECMAScript 標準を問題なく使用できます。Node.js のバージョンを変更することで、どの ECMAScript バージョンを使用するかを決定するのはあなた自身です。また、Node.js をフラグ付きで実行することで、特定の実験的機能を有効にすることもできます。

Node.js アプリケーションの例

最も一般的な Node.js の Hello World の例は、Web サーバーです。

const {  } = ('node:http');

const  = '127.0.0.1';
const  = 3000;

const  = ((, ) => {
  . = 200;
  .('Content-Type', 'text/plain');
  .('Hello World');
});

.(, , () => {
  .(`Server running at http://${}:${}/`);
});

このスニペットを実行するには、server.js ファイルとして保存し、ターミナルで node server.js を実行します。コードの mjs バージョンを使用する場合は、server.mjs ファイルとして保存し、ターミナルで node server.mjs を実行する必要があります。

このコードは、まず Node.js の http モジュールをインクルードします。

Node.js には、ネットワーキングの第一級サポートを含む、素晴らしい標準ライブラリがあります。

httpcreateServer() メソッドは、新しい HTTP サーバーを作成して返します。

サーバーは、指定されたポートとホスト名でリッスンするように設定されます。サーバーの準備が整うと、コールバック関数が呼び出され、この場合はサーバーが実行中であることを通知します。

新しいリクエストが受信されるたびに、request イベントが呼び出され、2 つのオブジェクトが提供されます。リクエスト(http.IncomingMessage オブジェクト)とレスポンス(http.ServerResponse オブジェクト)です。

これら 2 つのオブジェクトは、HTTP コールを処理するために不可欠です。

1 つ目はリクエストの詳細を提供します。この単純な例では使用されていませんが、リクエストヘッダーやリクエストデータにアクセスできます。

2 つ目は呼び出し元にデータを返すために使用されます。

この場合、

. = 200;

statusCode プロパティを 200 に設定し、成功したレスポンスを示します。

Content-Type ヘッダーを設定します。

res.setHeader('Content-Type', 'text/plain');

そして、レスポンスを終了し、コンテンツを end() の引数として追加します。

res.end('Hello World\n');

まだの場合は、Node.js をダウンロードしてください。

読了時間
3分
作成者
コントリビュート
このページを編集
目次
  1. Node.js アプリケーションの例