初心者向けガイド:Node.jsとは?できることと始め方を徹底解説!

JavaScript

Web開発やサーバー構築の分野で、「Node.js(ノードジェイエス)」という言葉をよく聞きませんか?

でも、プログラミングを始めたばかりの方にとっては、こんな疑問があると思います:

  • 「Node.jsって、そもそも何?」
  • 「どんなことができるの?」
  • 「むずかしそうだけど、初心者でも使える?」
  • 「JavaScriptとは何がちがうの?」

この記事では、Node.jsの基本的な仕組みから、できること、実際の始め方まで、初心者の方でも理解できるようにやさしく説明します。

むずかしい専門用語は使わず、実際に試せる方法をお教えしますので、安心してついてきてくださいね。


スポンサーリンク
  1. Node.jsとは何か?
    1. かんたんに説明すると
    2. もう少し詳しく
    3. 身近な例で理解しよう
    4. Node.jsの特徴
    5. どんな会社が使っているの?
    6. まとめ
  2. Node.jsでできること
    1. Webサーバーの構築
    2. REST APIの開発
    3. リアルタイム通信アプリ
    4. 自動化ツール(CLIアプリ)
    5. フロントエンド開発支援
    6. データ処理とバッチ処理
    7. IoT(モノのインターネット)
    8. デスクトップアプリの開発
    9. まとめ
  3. Node.jsのインストール方法(Windows・Mac共通)
    1. 公式サイトからダウンロード
    2. バージョンの選び方
    3. Windows でのインストール手順
    4. Mac でのインストール手順
    5. インストール確認
    6. よくあるインストールの問題
    7. Node.jsと一緒にインストールされるもの
    8. バージョン管理ツール(上級者向け)
    9. 開発環境の準備
    10. まとめ
  4. Node.jsで最初のプログラムを実行しよう
    1. 準備:フォルダーとファイルを作る
    2. 最初のプログラム
    3. プログラムの実行方法
    4. もう少し面白いプログラム
    5. ユーザーからの入力を受け取る
    6. ファイル操作をしてみる
    7. エラーが出た時の対処法
    8. デバッグのコツ
    9. 練習問題
    10. まとめ
  5. npmでライブラリを管理しよう
    1. npmとは何か?
    2. npmの基本的な使い方
    3. package.jsonファイル
    4. 実際にExpressを使ってみよう
    5. よく使われるnpmパッケージ
    6. 開発を効率化するパッケージ
    7. package.jsonの管理
    8. scriptsの活用
    9. node_modulesフォルダー
    10. npmのセキュリティ
    11. よくある問題と解決法
    12. まとめ
  6. 全体のまとめ
    1. この記事で学んだこと
    2. Node.jsの便利なコマンド集
    3. 学習リソース
    4. エラー対処法早見表
    5. セキュリティのポイント
    6. パフォーマンス最適化

Node.jsとは何か?

かんたんに説明すると

Node.jsとは、「JavaScriptというプログラミング言語を、いろいろな場所で使えるようにするソフト」です。

普通のJavaScript

  • Webブラウザーの中でしか動かない
  • ホームページの動きを作るのに使う
  • ボタンを押したときの反応など

Node.jsがあると

  • パソコンで直接JavaScriptが動く
  • サーバーを作ることができる
  • いろいろなツールを作れる

もう少し詳しく

JavaScriptの歴史: 1995年にWebページを動かすために作られた言語です。最初はブラウザーでしか使えませんでした。

Node.jsの誕生: 2009年に、「JavaScriptをブラウザー以外でも使いたい!」という思いから作られました。

なぜ人気になったの?

  • 一つの言語(JavaScript)でいろいろなことができる
  • 学習コストが低い(新しい言語を覚える必要がない)
  • たくさんの便利なツールが使える
  • 動作が速い

身近な例で理解しよう

料理に例えると

  • JavaScript:包丁(調理道具)
  • ブラウザー:キッチン(普通の調理場所)
  • Node.js:どこでも使える魔法の調理台

普通なら包丁はキッチンでしか使えませんが、魔法の調理台があれば、どこでも料理ができるようになります。

Node.jsの特徴

1. 非同期処理が得意

  • いくつものことを同時に処理できる
  • 一つの作業を待たずに、次の作業を始められる
  • チャットアプリなどリアルタイムな通信に向いている

2. 軽量で高速

  • メモリをあまり使わない
  • 処理が速い
  • たくさんの人が同時にアクセスしても大丈夫

3. 豊富なライブラリ

  • npm(エヌピーエム)という仕組みで、便利なツールをかんたんに追加できる
  • 世界中の開発者が作ったツールを無料で使える

どんな会社が使っているの?

有名なサービス

  • Netflix(動画配信)
  • Uber(配車サービス)
  • PayPal(決済サービス)
  • LINE(メッセージアプリ)
  • メルカリ(フリマアプリ)

これらの大きなサービスでも、Node.jsが使われています。

まとめ

Node.jsは、JavaScriptをより広い場面で活用できるようにする実行環境です。次は、Node.jsでどんなことができるのかを具体的に見てみましょう。


Node.jsでできること

Webサーバーの構築

Webサーバーとは?: インターネット上でWebサイトを表示するためのコンピューターです。

Node.jsでできること

  • 自分だけのWebサイトを作る
  • APIという仕組みでデータをやり取りする
  • ユーザーの登録やログイン機能を作る

簡単な例

// かんたんなWebサーバー
const http = require('http');

const server = http.createServer((req, res) => {
  res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});
  res.end('こんにちは!Node.jsサーバーです');
});

server.listen(3000, () => {
  console.log('サーバーが起動しました: http://localhost:3000');
});

REST APIの開発

APIとは?: アプリ同士が情報をやり取りするための仕組みです。

実際の例

  • 天気予報アプリが天気データを取得
  • SNSアプリが投稿を表示
  • ECサイトが商品情報を管理

Node.jsでAPIを作ると

  • スマホアプリとWebサイトで同じデータを使える
  • 他のサービスと連携できる
  • 効率的なシステムが作れる

リアルタイム通信アプリ

リアルタイム通信とは?: メッセージを送ったら、すぐに相手に届く仕組みです。

Node.jsが得意な理由

  • 同時にたくさんの人とやり取りできる
  • メッセージの送受信が速い
  • メモリを効率的に使える

作れるアプリの例

  • チャットアプリ
  • オンラインゲーム
  • リアルタイム株価表示
  • 共同編集ツール(Google Docsのような)

自動化ツール(CLIアプリ)

自動化ツールとは?: 面倒な作業を自動でやってくれるプログラムです。

作れるツールの例

  • ファイルの整理
  • データの変換
  • レポートの自動生成
  • バックアップの作成
  • 画像のリサイズ

実際のコード例

// ファイル一覧を表示するツール
const fs = require('fs');

fs.readdir('.', (err, files) => {
  if (err) {
    console.log('エラーが発生しました');
    return;
  }
  
  console.log('このフォルダーにあるファイル:');
  files.forEach(file => {
    console.log('- ' + file);
  });
});

フロントエンド開発支援

フロントエンドとは?: ユーザーが直接見る画面の部分です。

Node.jsでできる支援

  • コードの圧縮や最適化
  • ファイルの自動変換
  • 開発用サーバーの起動
  • コードの品質チェック

よく使われるツール

  • Webpack:ファイルをまとめて最適化
  • Gulp:作業の自動化
  • Parcel:簡単にビルド環境を作成
  • Vite:高速な開発サーバー

データ処理とバッチ処理

バッチ処理とは?: 大量のデータを一度にまとめて処理することです。

Node.jsでできること

  • CSVファイルの読み込みと変換
  • データベースのデータ移行
  • レポートの自動生成
  • 画像や動画の一括処理

IoT(モノのインターネット)

IoTとは?: いろいろなモノがインターネットにつながる仕組みです。

Node.jsでできること

  • センサーのデータ収集
  • ラズベリーパイなどの小型コンピューターでの動作
  • スマートホームの制御
  • 温度や湿度の監視システム

デスクトップアプリの開発

Electronという技術: Node.jsとWebの技術で、デスクトップアプリを作れます。

実際に作られたアプリ

  • Visual Studio Code(プログラムエディター)
  • Discord(チャットアプリ)
  • Slack(ビジネスチャット)
  • WhatsApp Desktop

まとめ

Node.jsは本当にいろいろなことができる、万能なツールです。幅広い活用が可能なNode.js。次は、実際にどのようにインストールして使い始めるかを解説しますね。


Node.jsのインストール方法(Windows・Mac共通)

公式サイトからダウンロード

正しいダウンロード先

  • URL:https://nodejs.org/
  • 公式サイト以外からはダウンロードしないでください
  • 偽物のサイトに注意

バージョンの選び方

LTS版(推奨)

  • LTS = Long Term Support(長期サポート)
  • 安定していて安全
  • 初心者の方はこちらを選んでください
  • 緑色のボタンで表示されることが多い

Current版

  • 最新機能が使える
  • まだ実験的な機能も含む
  • 上級者向け

どっちを選べばいい?: 迷ったら、必ずLTS版を選んでください。安定していて、問題が起きにくいです。

Windows でのインストール手順

1. ダウンロード

  • 公式サイトにアクセス
  • 「Windows Installer」をクリック
  • ファイルがダウンロードされるまで待つ

2. インストール実行

  • ダウンロードしたファイルをダブルクリック
  • 「このアプリがデバイスに変更を加えることを許可しますか?」→「はい」
  • インストーラーが起動

3. インストール設定

  • 「Next」を何回かクリック
  • 「Add to PATH」にチェックが入っていることを確認(重要!)
  • 「Install」をクリック

4. インストール完了

  • 「Finish」をクリック
  • パソコンを再起動(推奨)

Mac でのインストール手順

1. ダウンロード

  • 公式サイトにアクセス
  • 「macOS Installer」をクリック
  • .pkgファイルがダウンロード

2. インストール実行

  • ダウンロードした.pkgファイルをダブルクリック
  • 「開く」をクリック(セキュリティ警告が出た場合)

3. インストール設定

  • 「続ける」を何回かクリック
  • 管理者パスワードを入力
  • 「インストール」をクリック

4. インストール完了

  • 「閉じる」をクリック
  • ターミナルを再起動

インストール確認

コマンドプロンプト(Windows)またはターミナル(Mac)を開いて、以下を実行

node -v

正常にインストールされていれば

v18.17.0

のようにバージョン番号が表示されます。

npmの確認

npm -v

正常であれば

9.6.7

のようにバージョン番号が表示されます。

よくあるインストールの問題

問題1:「nodeコマンドが見つかりません」

  • 原因:PATHが設定されていない
  • 解決方法:Node.jsを再インストール(Add to PATHにチェック)

問題2:古いバージョンが表示される

  • 原因:古いNode.jsが残っている
  • 解決方法:古いバージョンをアンインストールしてから再インストール

問題3:Macで権限エラー

  • 原因:管理者権限が必要
  • 解決方法:sudoコマンドを使う、または管理者に相談

Node.jsと一緒にインストールされるもの

npm(エヌピーエム)

  • Node Package Manager
  • ライブラリやツールを管理するソフト
  • Node.jsと一緒に自動でインストールされる

npx(エヌピーエックス)

  • パッケージを一時的に実行するツール
  • npm 5.2.0以降に自動で含まれる

バージョン管理ツール(上級者向け)

nvm(Node Version Manager)

  • 複数のNode.jsバージョンを切り替えられる
  • プロジェクトごとに異なるバージョンを使える
  • 初心者の方は、まず普通のインストールで慣れてから

Windows用:nvm-windows Mac/Linux用:nvm

開発環境の準備

エディター

  • Visual Studio Code(無料、推奨)
  • Atom(無料)
  • Sublime Text(有料)

ターミナル

  • Windows:PowerShell、Command Prompt
  • Mac:Terminal、iTerm2

まとめ

インストールが完了すれば、すぐにJavaScriptファイルを実行できるようになります。

次は、簡単なプログラムを書いて実行してみましょう。


Node.jsで最初のプログラムを実行しよう

準備:フォルダーとファイルを作る

1. 作業用フォルダーを作る

  • デスクトップに「nodejs-practice」というフォルダーを作成
  • 分かりやすい場所に作ることが大切

2. ファイルを作る

  • フォルダーの中に「hello.js」というファイルを作成
  • 拡張子「.js」を忘れずに

最初のプログラム

hello.jsファイルの中身

// これはコメントです(プログラムには影響しません)
console.log("こんにちは、Node.js!");
console.log("私の最初のNode.jsプログラムです");

コードの説明

  • console.log():画面に文字を表示する命令
  • ""(ダブルクォート):文字列を囲む記号
  • ;(セミコロン):命令の終わりを示す

プログラムの実行方法

1. コマンドプロンプト/ターミナルを開く

  • Windows:「Win + R」→「cmd」→Enter
  • Mac:「Command + Space」→「terminal」→Enter

2. 作業フォルダーに移動

cd Desktop/nodejs-practice

3. プログラムを実行

node hello.js

4. 結果を確認

こんにちは、Node.js!
私の最初のNode.jsプログラムです

もう少し面白いプログラム

計算をするプログラム(calc.js)

// 変数を使って計算
let num1 = 10;
let num2 = 5;

console.log("足し算:", num1 + num2);
console.log("引き算:", num1 - num2);
console.log("掛け算:", num1 * num2);
console.log("割り算:", num1 / num2);

現在時刻を表示するプログラム(time.js)

// 現在の日時を取得
let now = new Date();

console.log("現在の時刻:", now);
console.log("年:", now.getFullYear());
console.log("月:", now.getMonth() + 1); // 月は0から始まるので+1
console.log("日:", now.getDate());

ユーザーからの入力を受け取る

interactive.js

// readlineモジュールを使う
const readline = require('readline');

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

// 名前を聞く
rl.question('あなたの名前を教えてください: ', (name) => {
  console.log(`こんにちは、${name}さん!`);
  
  // 年齢を聞く
  rl.question('年齢を教えてください: ', (age) => {
    console.log(`${name}さんは${age}歳なんですね!`);
    rl.close();
  });
});

ファイル操作をしてみる

file-example.js

// ファイル操作のモジュール
const fs = require('fs');

// テキストファイルを作成
const message = "これはNode.jsで作成したファイルです!\n今日は楽しい学習日です。";

fs.writeFile('message.txt', message, (err) => {
  if (err) {
    console.log('ファイルの作成でエラーが発生しました:', err);
  } else {
    console.log('message.txtファイルを作成しました!');
    
    // 作成したファイルを読み込み
    fs.readFile('message.txt', 'utf8', (err, data) => {
      if (err) {
        console.log('ファイルの読み込みでエラーが発生しました:', err);
      } else {
        console.log('ファイルの内容:');
        console.log(data);
      }
    });
  }
});

エラーが出た時の対処法

よくあるエラー

1. 「node: command not found」

  • 原因:Node.jsがインストールされていない、またはPATHが設定されていない
  • 解決:Node.jsを再インストール

2. 「cannot find file」

  • 原因:ファイル名やパスがまちがっている
  • 解決:ファイル名とフォルダーの場所を確認

3. 「SyntaxError」

  • 原因:コードの書き方がまちがっている
  • 解決:コードを見直し、セミコロンや括弧をチェック

デバッグのコツ

1. console.logをたくさん使う

let x = 10;
console.log("xの値:", x); // 値を確認

let y = x * 2;
console.log("yの値:", y); // 計算結果を確認

2. 一行ずつ実行して確認

  • 長いプログラムは小さく分けて動作確認
  • 問題がある部分を特定しやすくする

3. エラーメッセージをよく読む

  • エラーメッセージには解決のヒントが含まれている
  • 分からない単語は調べる

練習問題

問題1:簡単な自己紹介プログラム 名前、年齢、好きな食べ物を表示するプログラムを作ってみましょう。

問題2:簡単な計算機 2つの数値を足し算、引き算、掛け算、割り算する計算機を作ってみましょう。

問題3:今日の予定表示 今日の日付と「今日の予定:Node.jsの学習」を表示するプログラムを作ってみましょう。

まとめ

このように、ファイル1つでスクリプトの実行が可能なので、学習効率がとても高いのがNode.jsの魅力です。Node.jsの実行環境が整えば、さまざまなツールやライブラリも活用できます。次は「npm」について紹介しますね。


npmでライブラリを管理しよう

npmとは何か?

npm(エヌピーエム)

  • Node Package Managerの略
  • Node.js用のライブラリやツールを管理するソフト
  • Node.jsをインストールすると自動で付いてくる

ライブラリとは?

  • 他の人が作った便利なプログラムの部品
  • 自分で一から作らなくても、既にあるものを使える
  • 時間の節約と品質の向上ができる

npmの基本的な使い方

パッケージのインストール

npm install パッケージ名

例:人気のWebフレームワーク「Express」をインストール

npm install express

グローバルインストール(全体で使えるようにする)

npm install -g パッケージ名

パッケージの削除

npm uninstall パッケージ名

package.jsonファイル

package.jsonとは?

  • プロジェクトの設定ファイル
  • 使用するライブラリの一覧が書かれている
  • プロジェクトの情報(名前、バージョンなど)を管理

新しいプロジェクトを始める

npm init

いくつかの質問に答えると、package.jsonファイルが作成されます。

簡単に作成する

npm init -y

すべてデフォルト値で、すぐにpackage.jsonが作成されます。

実際にExpressを使ってみよう

1. プロジェクトフォルダーを作成

mkdir my-web-app
cd my-web-app

2. package.jsonを作成

npm init -y

3. Expressをインストール

npm install express

4. 簡単なWebサーバーを作成(app.js)

// expressモジュールを読み込み
const express = require('express');

// expressアプリを作成
const app = express();

// ホームページのルート
app.get('/', (req, res) => {
  res.send('<h1>こんにちは!Expressサーバーです</h1>');
});

// 自己紹介ページ
app.get('/about', (req, res) => {
  res.send('<h1>自己紹介</h1><p>Node.jsとExpressを学習中です!</p>');
});

// サーバーを3000番ポートで起動
app.listen(3000, () => {
  console.log('サーバーが起動しました: http://localhost:3000');
});

5. サーバーを起動

node app.js

6. ブラウザーで確認

  • http://localhost:3000 にアクセス
  • 「こんにちは!Expressサーバーです」が表示される

よく使われるnpmパッケージ

Web開発関連

  • express:Webサーバーフレームワーク
  • socket.io:リアルタイム通信
  • axios:HTTP通信ライブラリ

ユーティリティ

  • lodash:便利な関数がたくさん
  • moment:日時の操作
  • uuid:ユニークなIDの生成

開発支援

  • nodemon:ファイル変更時に自動再起動
  • eslint:コードの品質チェック
  • prettier:コードの自動フォーマット

開発を効率化するパッケージ

nodemonを使って自動再起動

  1. インストール
npm install -g nodemon
  1. 使用方法
nodemon app.js

ファイルを変更すると、自動でサーバーが再起動されます。

便利なライブラリの例

colors(文字に色を付ける)

npm install colors
const colors = require('colors');

console.log('成功しました!'.green);
console.log('警告です'.yellow);
console.log('エラーが発生しました'.red);

figlet(大きな文字で表示)

npm install figlet
const figlet = require('figlet');

figlet('Node.js', (err, data) => {
  if (err) {
    console.log('エラーが発生しました');
    return;
  }
  console.log(data);
});

package.jsonの管理

dependenciesとdevDependencies

  • dependencies:アプリ実行に必要なパッケージ
  • devDependencies:開発時のみ必要なパッケージ

開発用パッケージのインストール

npm install --save-dev パッケージ名

package.jsonの例

{
  "name": "my-web-app",
  "version": "1.0.0",
  "description": "私の最初のWebアプリ",
  "main": "app.js",
  "scripts": {
    "start": "node app.js",
    "dev": "nodemon app.js"
  },
  "dependencies": {
    "express": "^4.18.2"
  },
  "devDependencies": {
    "nodemon": "^3.0.1"
  }
}

scriptsの活用

package.jsonのscriptsセクション: よく使うコマンドを短縮して実行できます。

{
  "scripts": {
    "start": "node app.js",
    "dev": "nodemon app.js",
    "test": "echo \"テストはまだありません\" && exit 1"
  }
}

実行方法

npm start    # node app.js を実行
npm run dev  # nodemon app.js を実行
npm test     # テストを実行

node_modulesフォルダー

node_modulesとは?

  • インストールしたパッケージが保存される場所
  • 自動で作成される
  • サイズが大きくなることが多い

注意点

  • Gitなどのバージョン管理にはアップロードしない
  • .gitignoreファイルにnode_modulesを追加

.gitignoreファイルの例

node_modules/
.env
*.log

npmのセキュリティ

脆弱性の確認

npm audit

自動修復

npm audit fix

パッケージの更新

npm update

よくある問題と解決法

問題1:パッケージが見つからない

npm cache clean --force
npm install

問題2:権限エラー(Mac/Linux)

sudo npm install -g パッケージ名

問題3:古いバージョンのnpm

npm install -g npm@latest

まとめ

npmを使えば、プロジェクトの拡張や開発が格段にスムーズになります。世界中の開発者が作った便利なツールを無料で使えるので、効率的にプログラム開発ができます。

次は、これらの知識を使って、もっと実用的なアプリケーションを作ってみましょう!


全体のまとめ

Node.jsは、JavaScriptをより広い領域で活用できる強力なプラットフォームです。

この記事で学んだこと

  1. Node.jsの基本:JavaScriptをサーバーサイドで動かす実行環境
  2. 豊富な用途:Webアプリ、API、ツール開発など幅広い活用
  3. 簡単なインストール:公式サイトからLTS版をダウンロード
  4. 実際のプログラミング:console.logから始める基本操作
  5. npmの活用:便利なライブラリで効率的な開発

Node.jsの便利なコマンド集

基本コマンド

# Node.jsのバージョン確認
node -v

# npmのバージョン確認
npm -v

# JavaScriptファイルの実行
node ファイル名.js

# 対話モード(REPL)の起動
node

npmコマンド

# プロジェクトの初期化
npm init -y

# パッケージのインストール
npm install パッケージ名

# 開発用パッケージのインストール
npm install --save-dev パッケージ名

# グローバルインストール
npm install -g パッケージ名

# インストール済みパッケージの確認
npm list

# パッケージの更新
npm update

# セキュリティチェック
npm audit

学習リソース

公式ドキュメント

  • Node.js公式サイト:https://nodejs.org/
  • npm公式サイト:https://www.npmjs.com/

おすすめの学習サイト

  • MDN Web Docs(JavaScript基礎)
  • freeCodeCamp(無料のプログラミング学習)
  • Udemy(動画で学習)
  • Qiita(日本語の技術記事)

コミュニティ

  • Stack Overflow(技術Q&A)
  • GitHub(コードの共有)
  • Node.js日本ユーザーグループ

エラー対処法早見表

エラー原因解決方法
command not foundPATHが設定されていないNode.jsを再インストール
Cannot find moduleパッケージがインストールされていないnpm install でパッケージをインストール
Port already in useポートが使用中他のプロセスを停止、または別のポートを使用
Permission denied権限がないsudoを使用、または管理者権限で実行
SyntaxErrorコードの文法エラーコードを見直し、括弧やセミコロンをチェック

セキュリティのポイント

開発時の注意

  • 環境変数を使って機密情報を管理
  • .envファイルをバージョン管理に含めない
  • 定期的にパッケージを更新
  • npm auditでセキュリティチェック

本番環境での注意

  • 不要なパッケージは削除
  • HTTPSを使用
  • 適切なログ記録
  • エラー情報の漏洩防止

パフォーマンス最適化

基本的な最適化

  • 不要なconsole.logを削除
  • 効率的なアルゴリズムの使用
  • メモリリークの防止
  • 適切なエラーハンドリング

プロダクション環境

  • プロセスマネージャー(PM2)の使用
  • ロードバランシング
  • キャッシュの活用
  • データベースの最適化

コメント

タイトルとURLをコピーしました