Node.js入門 第3回

Node.js

Node.jsのモジュールシステム【require / export を理解する】

前回は Node.jsの環境構築 を解説しました。

  • Node.jsのインストール
  • npm
  • package.json
  • 最初のプログラム

今回は Node.jsの最も重要な仕組みの一つ

モジュールシステム

について解説します。

Node.jsではコードをファイルごとに分割し

モジュールとして再利用できる仕組みがあります。

これを理解すると

  • コードの整理
  • 再利用
  • 保守性の向上

ができるようになります。

モジュールとは?

モジュールとは

機能ごとに分割されたJavaScriptファイル

です。

例えば

project
app.js
math.js
user.js

それぞれのファイルが モジュール になります。

Node.jsのモジュールの種類

Node.jsには3種類のモジュールがあります。

種類説明
コアモジュールNode.js標準機能
ローカルモジュール自分で作るモジュール
サードパーティモジュールnpmライブラリ

1 コアモジュール

Node.jsには最初から使えるモジュールがあります。

モジュール用途
httpWebサーバー
fsファイル操作
pathパス操作
osOS情報

const fs = require("fs");

fs.writeFileSync("test.txt","Hello Node");

2 ローカルモジュール

自分で作るモジュールです。

project
app.js
math.js

math.js

function add(a,b){
    return a + b
}

module.exports = add

app.js

const add = require("./math")

console.log(add(5,3))

実行

node app.js

結果

8

このように

他のファイルの関数を利用できます。

module.exportsとは?

Node.jsでは

module.exports

を使って 外部に公開する機能 を定義します。

module.exports = add

つまり

この関数を外部から使えるようにする

という意味になります。

複数の関数をexportする

複数の関数を公開する場合はオブジェクトを使います。

math.js

function add(a,b){
    return a + b
}

function sub(a,b){
    return a - b
}

module.exports = {
    add,
    sub
}

app.js

const math = require("./math")

console.log(math.add(5,3))
console.log(math.sub(5,3))

結果

8
2

requireとは?

require()

は、モジュールを読み込む関数です。

const math = require("./math")

意味

math.jsを読み込む

requireの読み込みルール

Node.jsは次の順でモジュールを探します。

① コアモジュール

require("fs")

② node_modules

require("express")

③ ローカルファイル

require("./math")

ES Modules(import/export)

最近のNode.jsでは

ES Modules

も使えるようになりました。

これはブラウザJavaScriptと同じ書き方です。

export

export function add(a,b){
    return a + b
}

import

import { add } from "./math.js"

console.log(add(5,3))

ES Modulesを使う方法

package.jsonに設定します。

{
  "type": "module"
}

すると

require
module.exports

ではなく

import
export

が使えるようになります。

CommonJS と ES Modules の違い

項目CommonJSES Modules
読み込みrequireimport
公開module.exportsexport
同期同期非同期
標準Node.jsJavaScript標準

現在は

ES Modulesが主流になりつつあります。

Node.jsモジュールのメリット

モジュール化することで、コードが整理される

auth.js
db.js
user.js
api.js

再利用できる

同じ関数を複数のファイルから使える。

保守しやすい

機能ごとに分離できる。

まとめ

Node.jsのモジュールシステムは、JavaScriptコードを整理するための

重要な仕組みです。

今回のポイント

  • Node.jsにはモジュールシステムがある
  • requireで読み込む
  • module.exportsで公開
  • ES Modules(import/export)も使える

モジュール化を使うことで

大規模なアプリケーションでも管理しやすくなります。

次回は、Node.jsの非同期処理

コメント

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