Skip to content

基本的な構文

Node.jsは、Google ChromeのV8 JavaScriptエンジンを基盤として、サーバーサイドでJavaScriptを実行するための環境です。提供されたコードは、Node.jsの主要な特徴である「モジュールのインポート」と「非同期処理」を示しています。

1. モジュールのインポート (require)

Section titled “1. モジュールのインポート (require)”

Node.jsでは、require()関数を使って他のファイルや組み込みモジュールを読み込み、アプリケーションで利用します。これにより、コードを小さな部品に分割して管理できます。

const fs = require('fs');
  • fsは「File System」の略で、Node.jsに標準で組み込まれているモジュールです。
  • この行は、ファイルシステムを操作するための機能(ファイルの読み書きなど)を、fsという定数にインポートしています。
  • このように、必要な機能だけを読み込むことで、メモリの消費を抑え、コードを整理できます。

Node.jsは、シングルスレッドで動作するため、時間のかかるI/O処理(ファイルの読み書き、ネットワーク通信、データベースアクセスなど)を同期的に実行すると、後続の処理がすべて停止してしまいます。これを避けるために、非同期処理が不可欠です。

async function readFileAsync(path) {
const data = await fs.promises.readFile(path, 'utf8');
console.log(data);
}
  • asyncキーワードは、この関数が非同期であることを示します。この関数はPromiseを返します。
  • この関数内では、時間のかかる処理を一時停止し、完了後に再開することができます。
  • awaitキーワードは、Promiseが完了(解決または拒否)するまで、この行の実行を一時停止します。
  • fs.promises.readFile()は、ファイルを非同期に読み込むPromiseベースのメソッドです。
  • ファイル読み込みが完了すると、その結果がdata変数に代入され、次の行のconsole.log(data)が実行されます。

これにより、ファイルI/Oの完了を待つ間も、Node.jsは他のリクエストを処理し続けることができます。

これらの構文は、Node.jsアプリケーションを効率的でスケーラブルにするための基本であり、サーバー開発において非常に重要です。