【プログラミング】【フロント】Node.jsの概要 - j-komatsu/myCheatSheet GitHub Wiki

Node.jsの概要

初学者向け説明

Node.jsとは?

Node.jsは、JavaScriptをサーバーサイドで実行できる環境です。
通常、JavaScriptはWebブラウザ上で動作しますが、Node.jsを使うことでサーバーでも動作させることができます。

Node.jsの特徴

特徴 説明
非同期処理 Node.jsは非同期I/Oを採用しており、高速な処理が可能です。
シングルスレッド イベントループを活用して効率的に処理を行います。
JavaScript フロントエンドと共通の言語で開発ができます。
豊富なパッケージ npm(Node Package Manager)を使って、多くのライブラリを利用可能です。

簡単なコード例

Node.jsの基本的なコードとして、簡単なHTTPサーバーを作成してみます。

const http = require('http');
const server = http.createServer((req, res) => {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello, World!\n');
});
server.listen(3000, () => {
    console.log('Server running at http://localhost:3000/');
});

上記のコードを実行すると、http://localhost:3000/ にアクセスすると「Hello, World!」と表示されるサーバーが立ち上がります。


専門者向け説明

Node.jsのアーキテクチャ

Node.jsは、以下のような仕組みで動作します。

graph LR;
  Client -- Request --> EventLoop;
  EventLoop -- Dispatch --> WorkerThreads;
  WorkerThreads -- Response --> Client;
  • Event Loop: シングルスレッドで非同期処理を管理します。
  • Worker Threads: 複雑な計算やブロッキング処理が必要な場合に利用します。
  • Non-blocking I/O: I/O処理をノンブロッキングで実行し、高いパフォーマンスを実現します。

Node.jsのモジュールシステム

Node.jsでは、モジュールを活用してコードを分割・管理します。

コモンJSモジュール

// module.js
module.exports = function greet(name) {
    return `Hello, ${name}!`;
};

// main.js const greet = require('./module'); console.log(greet('Alice'));

ESモジュール

// module.mjs
export function greet(name) {
    return `Hello, ${name}!`;
}

// main.mjs import { greet } from './module.mjs'; console.log(greet('Bob'));

イベント駆動モデル

Node.jsはイベント駆動型のアーキテクチャを採用しています。

const EventEmitter = require('events');
const myEmitter = new EventEmitter();

myEmitter.on('event', () => { console.log('イベントが発生しました!'); });

myEmitter.emit('event');

このように、イベントを登録し、emit()で発火させることで非同期処理を管理できます。

まとめ

Node.jsは非同期処理を得意とするサーバーサイドJavaScriptの実行環境です。パフォーマンスの最適化やアーキテクチャ設計を意識することで、高速なWebアプリケーションを構築できます。

⚠️ **GitHub.com Fallback** ⚠️