Agile育成ブログ
未来を変える喜びを
javascript

node.js

node.jsについて

Node.jsはJavaScriptの実行環境のこと。JavaScriptは元々ブラウザ上で動くプログラム言語だが, Node.jsは自身のPCやサーバサイドでJavaScriptを動かすことができる。

インストール方法

インストール方法は2通りあります。

Node.jsのHPからダウンロードする。

npmとは?
https://nodejs.org/en/

コマンド入力でインストール

npm

npmはJavaScriptのパッケージ管理ツールで JavaScriptの様々なソフトウェアを簡単なコマンドでインストールしたりアップデートしたりすることができます。

#nodejs, npm をインストール
sudo apt install -y nodejs npm
#n package を導入
sudo npm install n -g
#n package を使って node をインストール
sudo n stable
#最初の nodejs, npm は消す
 sudo apt purge -y nodejs npm
 exec $SHELL -l

nvmでインストール

ノード バージョン マネージャー (一般的には nvm と呼ばれることが多い) は、Node.js の複数のバージョンをインストールするための最も一般的な方法

  • sudo apt-get install curl を使用して cURL をインストールします (コマンドラインでインターネットからコンテンツをダウンロードするために使用するツール)。
  • curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash を使用して nvm をインストールします。

確認

以下のコマンドでNode.jsのバージョンを確認しましょう。バージョン番号が表示されれば問題なくインストールされています。

node --version

npmのバージョンも確認しておきます。

npm --version

実行

crypto モジュール

  • 概要: Node.js に標準で組み込まれている暗号化モジュールです。ハッシュ、HMAC、暗号化/復号化、署名などの機能を提供します。
  • 主な機能:
    • ハッシュ生成(例: sha256
    • メッセージ認証コード(HMAC)の作成
    • 暗号化/復号化(例: AES, RSA)
    • デジタル署名と証明書操作

Buffer

  • 概要: Node.js のグローバルクラスで、バイナリデータを扱うために設計されています。
    • 主にバッファリングされた I/O 操作(ファイル操作やネットワーク通信)に利用されます。
    • ブラウザでは Buffer がネイティブに提供されていないため、ポリフィルが必要です。

ポリフィル(polyfill)とは、特定の機能が環境でサポートされていない場合に、それを実装するライブラリやコードのことです。

  • 目的:
    • 古いブラウザや特定の環境で動作しない機能を提供する。
    • Node.js の機能をブラウザ環境でエミュレートする。

CommonJSモジュールからESモジュール

CommonJSモジュールとESモジュールは、JavaScriptにおけるモジュールシステムの2つの主要な形式です。それぞれの特徴と違いについて説明します。

CommonJSモジュール

  • 定義: CommonJSは、主にサーバーサイドのJavaScript(Node.jsなど)で使用されるモジュールシステムです。
  • エクスポート: モジュールのエクスポートは、module.exportsまたはexportsオブジェクトを使用して行います。 // myModule.js const myFunction = () => { console.log("Hello from myFunction!"); }; module.exports = myFunction;
  • インポート: モジュールのインポートは、require()関数を使用して行います。 // main.js const myFunction = require('./myModule'); myFunction(); // "Hello from myFunction!"
  • 同期的: CommonJSは同期的にモジュールを読み込むため、モジュールの読み込みが完了するまで次の処理に進みません。

ESモジュール

  • 定義: ESモジュール(ECMAScript Modules)は、JavaScriptの標準モジュールシステムで、ブラウザやNode.js(最新のバージョン)で使用されます。
  • エクスポート: モジュールのエクスポートは、exportキーワードを使用して行います。 // myModule.js export const myFunction = () => { console.log("Hello from myFunction!"); };
  • インポート: モジュールのインポートは、import文を使用して行います。 // main.js import { myFunction } from './myModule.js'; myFunction(); // "Hello from myFunction!"
  • 非同期的: ESモジュールは非同期的に読み込まれるため、モジュールの読み込みが完了するのを待たずに次の処理を進めることができます。

主な違い

  1. 構文:
    • CommonJS: require()module.exports
    • ESモジュール: importexport
  2. 読み込み方式:
    • CommonJS: 同期的
    • ESモジュール: 非同期的
  3. 使用場所:
    • CommonJS: 主にNode.jsで使用
    • ESモジュール: ブラウザやNode.js(最新のバージョン)で使用
  4. ファイル拡張子:
    • CommonJS: 拡張子は特に指定なし(通常は.js
    • ESモジュール: 拡張子を明示的に指定する必要がある(.js.mjs

まとめ

CommonJSとESモジュールは、それぞれ異なる環境や用途に応じて使用されます。Node.jsではCommonJSが広く使われてきましたが、ESモジュールは標準化され、ブラウザや最新のNode.jsでもサポートされています。新しいプロジェクトでは、ESモジュールを使用することが推奨されることが多いです。