Node.js

Node.js

【Node.js】readlineで標準入力・ファイルを1行ずつ読む|question・for await・close

Node.jsのreadlineで標準入力やファイルを1行ずつ読む方法を実機で確認しながら解説します。readline/promisesのawait question、コールバック版のquestion、for awaitでファイルを1行ずつ処理する方法、rl.close()が必要な理由とパイプ入力との違いまで整理します。
Node.js

【Node.js】Bufferの使い方|バイナリ・エンコード変換・バイト長の罠

Node.jsのBufferの使い方を実機で確認しながら解説します。文字列とBufferの相互変換、utf8・hex・base64のエンコード変換、.lengthが文字数ではなくバイト長になる罠(日本語は3バイト)、Buffer.allocとallocUnsafeの違い、concatでの結合やバイトアクセスまで整理します。
Node.js

【Node.js】URLとURLSearchParamsの使い方|パース・クエリ取得・組み立て

Node.jsのURLとURLSearchParamsの使い方を実機で確認しながら解説します。new URLでのパース(hostname・pathname・searchParams)、クエリの取得、相対URLにbaseが必要な理由、URLSearchParamsでのクエリ組み立てと自動エンコード、同名キーのgetAll、fetchと組み合わせたAPI URLの作り方まで整理します。
Node.js

【Node.js】child_processでコマンドを実行する方法|exec・execSync・spawnの使い分け

Node.jsのchild_processで外部コマンドを実行する方法を実機で確認しながら解説します。手軽なexecSync、非同期のexecとpromisify、stdout/stderrと終了コードの取得、execのmaxBuffer上限の罠、大量出力や長時間処理に向くspawn、シェルインジェクションを避ける引数の渡し方まで整理します。
Node.js

【Node.js】fetchでAPIを叩く方法|GET・POST・JSON取得とエラー処理の罠

Node.jsの組み込みfetchでAPIを叩く方法を実機で確認しながら解説します。await fetchでのGETとres.jsonでのJSON取得、404や500でも例外が投げられない罠とres.okの確認、POSTでのJSON送信、レスポンスのbodyが一度しか読めないこと、try-catchでのエラー処理、ヘッダーや認証トークンの付け方まで整理します。
Node.js

【Node.js】Expressで最小のAPIサーバーを作る|ルーティング・JSON・GET/POST

Node.jsのExpressで最小のAPIサーバーを作る方法を実機で確認しながら解説します。expressのインストールと数行で動くサーバー、app.getでのルーティング、URLパラメータ(:id)とクエリ(req.query)、express.jsonでのPOSTボディの受け取り、res.jsonとステータスコード、ミドルウェアの基礎まで整理します。
Node.js

【Node.js】module.exportsで自作モジュールを分割する|exportsの罠・named/default

Node.jsのmodule.exportsで自作モジュールを分割する方法を実機で確認しながら解説します。requireでの読み込み、複数の値や単一の関数の公開、module.exportsとexportsの違い、exports=の再代入が効かない罠、requireのキャッシュ、ESモジュールのexportとの対応まで整理します。
Node.js

【Node.js】process完全ガイド|環境変数・コマンドライン引数・終了コード

Node.jsのprocessオブジェクトを実機で確認しながら解説します。process.envでの環境変数(値は常に文字列)、process.argvでのコマンドライン引数(argv[2]が最初の引数)、process.exitとexitCodeでの終了コード、platform/version/cwd、標準入出力とシグナルまで整理します。
Node.js

【Node.js】httpモジュールでWebサーバーを作る|リクエスト処理・ルーティング・JSON返却

Node.jsのhttpモジュールでWebサーバーを作る方法を実機で確認しながら解説します。createServerとlisten、res.end()を呼ばないとハングする罠、req.url/req.methodでのルーティング、JSON返却、POSTボディの受け取り、ステータスコード、Expressとの違いまで整理します。
Node.js

【Node.js】pathモジュールの使い方|join・resolve・basename・__dirname

Node.jsのpathモジュールの使い方を実機で確認しながら解説します。path.joinでのパス結合、joinとresolveの違い(相対と絶対)、basename/dirname/extnameでの分解、path.parse、__dirnameを基準にした絶対パスの作り方、OSの区切り文字とpath.posixまで整理します。
Node.js

【Node.js】npmとpackage.jsonの基礎|install・scripts・semver・devDependencies

Node.jsのnpmとpackage.jsonの基礎を実機で確認しながら解説します。npm initでの作成、npm installとdependencies、-DでのdevDependencies、^と~のsemver、scriptsとnpm run、package-lock.jsonとnpm ci、グローバルインストールまで整理します。
Node.js

【Node.js】fsでファイルを読み書きする方法|同期・非同期・Promises

Node.jsのfsモジュールでファイルを読み書きする方法を実機で確認しながら解説します。同期(readFileSync)・コールバック・Promise(fs/promises)の3つのAPI、encodingを指定しないとBufferが返る罠、writeFile/appendFile、existsSync/mkdir/readdir、エラー処理、JSON読み込みまで整理します。
Node.js

【Node.js】requireとimportの違い|CommonJSとESモジュールの使い分け

Node.jsのrequire(CommonJS)とimport(ESモジュール)の違いを実機で確認しながら解説します。それぞれの書き方、ESモジュールの有効化(.mjsとtype:module)、ESMでは__dirnameが使えずimport.meta.urlを使う点、import時の拡張子必須、JSONの読み込み、CommonJSとの相互運用、動的importまで整理します。
Node.js

【Node.js】AsyncLocalStorageでリクエスト単位のコンテキストを保持する方法

Node.jsは非同期で動作するため、リクエストごとに変数のスコープを持つことが難しいとされてきました。これにより、リクエスト
Node.js

【Node.js】WebSocketを使ったリアルタイム通信|socket.ioで双方向のイベント設計

Webアプリケーションにおいて、リアルタイム通信のニーズは年々高まっています。チャット、通知、オンライン同期など、ユーザー
Node.js

【Node.js】メッセージキューを使った非同期ジョブ処理の実装|Bull×Redis入門

Node.jsで大量のタスクを効率よく処理したいとき、非同期ジョブキューの活用が有効です。特に、重たい処理をバックグラウンドで並
Node.js

【Node.js】イベントループの挙動を理解する|setTimeoutとPromiseの優先度

Node.jsは非同期処理が得意なプラットフォームとして知られていますが、その中核を担うのが「イベントループ(Event Loop)」です
Node.js

【Node.js】Child Processを使った並列処理|CPUを活かすマルチプロセス設計

Node.jsはシングルスレッドの非同期処理で高いパフォーマンスを発揮しますが、CPUを多用する処理(画像変換・暗号化・大量計算など)
Node.js

【Node.js】メモリリークの原因と検出方法|heapdumpとprofilerで可視化

Node.jsは非同期で高性能なアプリケーション開発に適していますが、運用中に「メモリ使用量がじわじわと増加する」「一定時間後にサー
Node.js

【Node.js】大量リクエストを高速処理するRate Limiterの実装法|Express中間処理で防御力UP

APIサーバーにおいて、外部からの過剰なリクエストによってリソースが枯渇する事態は珍しくありません。特にNode.jsのように非同期