NodeJS 速習チュートリアル

Node.js JavaScript 要件

1. クイックスタート

JavaScriptが初めての方でも、心配はいりません!
Node.jsに飛び込む前に知っておくべき主要なコンセプトを、シンプルなコード例とともに紹介します。

1.1 自分で試してみる

これらの例は、ブラウザのコンソールで直接実行するか、Node.jsを使用して .js ファイルとして実行することができます。

2. JavaScriptの基本概念

Node.jsを開始する前に、以下のJavaScriptコンセプトに慣れておく必要があります。

  • Variables(変数)
  • Functions(関数)
  • Objects(オブジェクト)
  • Arrays(配列)
  • Asynchronous programming(非同期プログラミング:コールバック、プロミス、async/await)
  • ES6+ features(ES6以降の機能)

このページでは、Node.js開発に必要なエッセンシャルなJavaScriptの概念を短い例で紹介します。より深く学びたい場合は、当サイトのJavaScriptチュートリアルを参照してください。

3. 変数と関数

Node.jsサーバーを構築する際、変数の宣言と関数の定義は基本中の基本です。

// 変数 (let, const, var)
let name = 'Node.js';
const version = 20;

// 関数の宣言 (Function declaration)
function greet(user) {
  return `Hello, ${user}!`; // テンプレートリテラル (ES6)
}

// アロー関数 (Arrow function - ES6+)
const add = (a, b) => a + b;

console.log(greet('Developer')); // Hello, Developer!
console.log(add(5, 3)); // 8

4. オブジェクトと配列

データを構造化して管理するために、オブジェクトと配列を多用します。

// オブジェクト (Object)
const user = {
  name: 'Alice',
  age: 25,
  greet() {
    console.log(`Hi, I'm ${this.name}`);
  }
};

// 配列 (Array)
const colors = ['red', 'green', 'blue'];

// 配列メソッド (Array methods - ES6+)
colors.forEach(color => console.log(color));
const lengths = colors.map(color => color.length);

5. 非同期JavaScript

Node.jsの最大の特徴は非同期処理です。I/O(入出力)待ちの時間を有効活用するために、以下のパターンを理解する必要があります。

// 1. コールバック (従来のパターン)
function fetchData(callback) {
  setTimeout(() => {
    callback('データを受け取りました!');
  }, 1000);
}

// 2. プロミス (Promises - ES6+)
const fetchDataPromise = () => {
  return new Promise((resolve) => {
    setTimeout(() => resolve('プロミスが解決されました!'), 1000);
  });
};

// 3. async/await (ES8+)
async function getData() {
  const result = await fetchDataPromise();
  console.log(result);
}

getData(); // 非同期関数の実行

6. 分割代入とテンプレートリテラル (ES6+)

モダンなJavaScriptでは、コードを簡潔に書くための構文が用意されています。

// オブジェクトの分割代入 (Destructuring)
const { name } = user;
console.log(`Hello, ${name}!`); // テンプレートリテラル

7. 主要なJavaScriptコンセプト

  • Variables: let(再代入可能)、const(再代入不可)、var(古い形式)
  • Functions: 通常の関数、アロー関数、およびメソッド
  • Objects & Arrays: データを整理するためのデータ構造
  • Modules: require()(CommonJS)および import/export(ES6)
  • Error Handling: try/catch ブロックによる例外処理

8. クイックリファレンス表

Node.jsの各バージョンにおける主要機能のサポート状況です。

機能Node.js サポート
let / constはい (Node 6+ 以降)
アロー関数 (Arrow Functions)はい (Node 4+ 以降)
分割代入 (Destructuring)はい (Node 6+ 以降)
テンプレートリテラルはい (Node 4+ 以降)
プロミス (Promises)はい (Node 0.12+ 以降)
async/awaitはい (Node 7.6+ 以降)