Node.jsとは?インストール方法を解説

Node.js(ノードジェイエス)とは、サーバーサイドでJavaScriptを実行できるオープンソースのランタイム環境です。通常、JavaScriptはブラウザ上でしか動きませんが、Node.jsを使うことでサーバーやローカルPC上でもJavaScriptを動かせます。

出典:https://nodejs.org/ja

Node.js の主な特徴

  • 非同期・イベント駆動型
    • Node.js は非同期処理を得意とする設計になっています。これにより、リクエストを並列に処理する性能が高く、サーバーの応答性が向上します。
  • V8 JavaScript エンジンを使用
    • Google の Chrome ブラウザに搭載されている V8 エンジンを利用しているため、JavaScript の実行速度が非常に速いです。
  • 単一スレッド
    • Node.js は単一スレッドで動作しますが、内部で非同期 I/O 操作を行うことで効率よく複数のリクエストを処理します。
  • NPM
    • Node.js のパッケージ管理システムで、数百万以上のパッケージ(モジュール)が利用可能です。これにより、アプリケーションの開発が迅速化します。
  • クロスプラットフォーム
    • Windows、macOS、Linux など、さまざまな環境で動作します。

Node.js の用途

  • Web サーバー
    • ExpressなどのフレームワークでAPIサーバーを構築
  • リアルタイムアプリケーション
    • チャットアプリや WebSocket を利用したリアルタイム通信が必要なアプリに最適。
  • API サーバー
    • RESTful API や GraphQL API を作成する際に利用されます。
  • シングルページアプリケーション(SPA)との連携
    • React、Vue、Angular などのフロントエンドフレームワークと連携し、バックエンドとして利用。
  • スクリプト・自動化ツール
    • CLI ツールや自動化スクリプトを作成する際にも使用可能。
  • マイクロサービス
    • 小規模で独立したサービスを構築するのに適しています。

Node.js を使うメリット

  • JavaScript 統一
    • フロントエンドとバックエンドの両方を JavaScript で統一できる。
  • 高速
    • 非同期処理と V8 エンジンにより、高速な処理が可能。
  • 豊富なモジュール
    • NPM の膨大なパッケージ群により、再利用可能なコードを簡単に利用可能。
  • アクティブなコミュニティ
    • オープンソースで開発されており、多くの開発者がサポートしています。

Node.js を選ぶべきケース

  • リアルタイム機能が必要(例:チャットアプリ、ゲームサーバー)
  • 軽量なバックエンドアプリケーションを作りたい
  • JavaScript に慣れている
  • フロントエンドとバックエンドを統一したい

注意点

非同期処理の扱いに注意

Node.jsは非同期処理を前提とした設計になっており、効率よく複数の処理を並行して行うことが可能です。
しかし、適切に扱わないと「コールバック地獄」と呼ばれる可読性の低いコードになってしまいます。
対策としては、Promiseasync/awaitを用いてシンプルかつ読みやすい記述に統一することをおすすめします。

CPU負荷の高い処理は分離する

Node.jsはシングルスレッドで動作しているため、計算量の多い処理や画像変換などの重い処理を直接行うのは適していません。

npmパッケージの管理

Node.jsの魅力のひとつに、npmによる豊富なパッケージ群があります。
ただし、誰でも公開できる仕組みのため、品質や安全性にばらつきがある点に注意が必要です。

セキュリティの確保

Webバックエンドとして利用する場合、セキュリティリスクを常に意識する必要があります。

バージョン管理の徹底

Node.jsはバージョンによって利用できる機能や挙動が異なる場合があります。
そのため、開発環境と本番環境でバージョンが揃っていないと「自分の環境では動作するのに、本番では動かない」といった問題が発生しやすくなります。

目次

Node.jsの使用方法

以下は基本的なセットアップからコードの実行方法、具体的な活用例までを段階的に説明します。

事前準備(任意)

nvm(Node Version Manager)を使用する場合、必要に応じてnvmのバージョンを最新にしてから実行します。
nvm はオープンソースの「Node.jsのバージョンを管理するためのツール」です。

インストールコマンドの例)Unix、macOS、Windows WSLの場合

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash

備考:npm はパッケージを管理、nvmはNode.js本体のバージョンを管理します

項目npmnvm
フルネームnpmNode Version Manager
管理対象Node.jsのライブラリや依存パッケージNode.jsの本体バージョン
主な用途ExpressなどのパッケージをインストールNode.js 16 / 18 / 20 を切り替える
インストール方法Node.jsに同梱されている別途インストールが必要
よく使う場面アプリ開発中にライブラリを追加・更新するときプロジェクトごとにNode.jsのバージョンを揃えるとき

詳しい手順はこちらの公式サイトをご確認ください。

1. Node.js のインストール

公式サイト にアクセスします。https://nodejs.org/ja/download

LTS(Long Term Support)バージョンを選択してダウンロードします。
LTS は安定版で、一般的な使用に適しています。プルダウンでご自身の環境に合わせて変更してください。

インストール完了後、以下のコマンドでバージョンを確認します。

node -v
npm -v

node -v: Node.js のバージョンを確認。

npm -v: NPMのバージョンを確認。

(外部サイト)Node.js公式サイト

2. 初めてのスクリプトを作成

任意のフォルダを作成して移動します。次の例ではmy-node-appというプロジェクトフォルダを作成していますが、任意の名前に変更指定ください。

cd 任意のフォルダ
mkdir my-node-app
cd my-node-app

新しいファイルを作成します(例: app.js)。
Linux / macOSの場合は、以下のようなコマンドを実行するか、手動で新規ファイルを作成します。

touch app.js

ファイルにコードを記述します。例えば、Hello World スクリプト:

console.log("Hello, Node.js!");

実行します。

node app.js

結果として、Hello, Node.js! がコンソールに表示されます。

3. HTTP サーバーの作成

Node.js の基本的な用途の一つが、HTTP サーバーの構築です。

app_server.js に以下のコードを記述:

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/");
});

実行します。

node app_server.js

ブラウザで http://localhost:3000/ にアクセスすると、Hello, World! と表示されます。

4. NPM を使ったパッケージ管理

Node.js の強みの一つは、NPM を使ったライブラリの管理です。

パッケージの初期化

「プロジェクトのルートディレクトリ(フォルダ)」に移動します。
以下を実行して package.json を作成:

npm init -y

このコマンドで、デフォルト設定の package.json が生成されます。

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

例)人気のウェブフレームワーク Express をインストール。

npm install express

5. Express を使った Web アプリケーションの作成

app_express.js を以下の内容に変更します:

const express = require("express");
const app = express();

app.get("/", (req, res) => {
    res.send("Hello, Express!");
});

app.listen(3000, () => {
    console.log("App listening at http://localhost:3000");
});

実行します。

node app_express.js

ブラウザで http://localhost:3000 にアクセスすると、Hello, Express! と表示されます。

6. 非同期処理の基本

Node.js は非同期処理を得意としています。以下はファイルを読み込む例です。app_example.js を以下の内容に変更します:

fs モジュールを使った非同期ファイル読み込み:

const fs = require("fs");

fs.readFile("example.txt", "utf8", (err, data) => {
    if (err) {
        console.error(err);
        return;
    }
    console.log(data);
});

ファイル example.txt を作成し、任意のテキストを記述するコマンドを実施。

Linux/macOSの例)

touch example.txt
echo "This is Node.js!" > example.txt

Windowsの例)

New-Item example.txt -ItemType File -Force
Set-Content example.txt "This is Node.js!" -Encoding UTF8

実行します。

node app_example.js

example.txt の内容This is Node.js!がコンソールに表示されます。

7. Node.js の活用例

  1. リアルタイムアプリケーション
    WebSocket を使ってチャットアプリや通知システムを構築。
  2. REST API サーバー
    Express を使って API を簡単に構築。
  3. タスク自動化
    スクリプトを作成して定型業務を効率化。
  4. データ処理
    大量のデータを扱うためのツール作成。

8. Node.js のデバッグ方法

Node.js にはデバッグツールが組み込まれています。

デバッグモードで実行:

node inspect app.js

Chrome DevTools を利用する:

node --inspect-brk app.js

ブラウザで chrome://inspect にアクセスしてデバッグを行う。

公式情報

関連サイト

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

AIアーティスト | エンジニア | ライター | 最新のAI技術やトレンド、注目のモデル解説、そして実践に役立つ豊富なリソースまで、幅広い内容を記事にしています。フォローしてねヾ(^^)ノ

コメント

コメント一覧 (4件)

コメントする

目次