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には最初から使えるモジュールがあります。
例
| モジュール | 用途 |
|---|---|
| http | Webサーバー |
| fs | ファイル操作 |
| path | パス操作 |
| os | OS情報 |
例
const fs = require("fs");
fs.writeFileSync("test.txt","Hello Node");2 ローカルモジュール
自分で作るモジュールです。
例
project
├ app.js
└ math.jsmath.js
function add(a,b){
return a + b
}
module.exports = addapp.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
2requireとは?
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 の違い
| 項目 | CommonJS | ES Modules |
|---|---|---|
| 読み込み | require | import |
| 公開 | module.exports | export |
| 同期 | 同期 | 非同期 |
| 標準 | Node.js | JavaScript標準 |
現在は
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の非同期処理

コメント