【プログラミング】【フロント】Node.jsの概要 - j-komatsu/myCheatSheet GitHub Wiki
Node.jsは、JavaScriptをサーバーサイドで実行できる環境です。
通常、JavaScriptはWebブラウザ上で動作しますが、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は、以下のような仕組みで動作します。
graph LR;
Client -- Request --> EventLoop;
EventLoop -- Dispatch --> WorkerThreads;
WorkerThreads -- Response --> Client;
- Event Loop: シングルスレッドで非同期処理を管理します。
- Worker Threads: 複雑な計算やブロッキング処理が必要な場合に利用します。
- Non-blocking I/O: I/O処理をノンブロッキングで実行し、高いパフォーマンスを実現します。
Node.jsでは、モジュールを活用してコードを分割・管理します。
// module.js
module.exports = function greet(name) {
return `Hello, ${name}!`;
};
// main.js
const greet = require('./module');
console.log(greet('Alice'));
// 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アプリケーションを構築できます。