require(CommonJS) — const x = require('x')(Node.js)
Node.js では昔から使われている モジュール読み込みの仕組み が CommonJS です。require() を使って外部モジュールや自作ファイルを読み込みます。初心者がまず覚えるべきは「標準モジュールの読み込み」と「自作モジュールの読み込み」です。
基本のコード例
// 標準モジュールを読み込む
const fs = require('fs');
// ファイルを読み込む
const data = fs.readFileSync('hello.txt', 'utf-8');
console.log(data);
JavaScriptrequire('fs')→ Node.js 標準のファイル操作モジュールを読み込む。fs.readFileSync→ ファイルを同期的に読み込む。
自作モジュールを読み込む
utils.js
function hello(name) {
return `こんにちは ${name}`;
}
// 外部に公開
module.exports = { hello };
JavaScriptmain.js
const utils = require('./utils.js');
console.log(utils.hello("Aki")); // → "こんにちは Aki"
JavaScriptmodule.exportsで公開したものをrequireで読み込む。- 相対パス
./を忘れない。
よく使うテンプレート集
複数の関数を公開
// math.js
function add(a, b) { return a + b; }
function sub(a, b) { return a - b; }
module.exports = { add, sub };
JavaScript// main.js
const math = require('./math.js');
console.log(math.add(2, 3), math.sub(5, 2));
JavaScript1つだけ公開
// square.js
module.exports = function(x) {
return x * x;
};
JavaScript// main.js
const square = require('./square.js');
console.log(square(5)); // → 25
JavaScript外部ライブラリを読み込む
// 事前に npm install moment
const moment = require('moment');
console.log(moment().format("YYYY-MM-DD HH:mm:ss"));
JavaScript例題: 簡易Webサーバー
// server.js
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello Node.js!');
});
server.listen(3000, () => {
console.log('http://localhost:3000 でサーバー起動');
});
JavaScript- 効果:
node server.jsを実行するとローカルでWebサーバーが立ち上がる。
実務でのコツ
- CommonJS vs ESM:
- CommonJS →
require/module.exports - ESM →
import/export
- CommonJS →
- 混在注意: 同じファイルで両方を混ぜるとエラーになることがある。
- npmライブラリ: 外部パッケージは
npm installで追加してからrequire。 - 相対パス: 自作モジュールは
./を忘れない。 - 同期/非同期: ファイル操作は
readFileSync(同期)とreadFile(非同期)がある。
ありがちなハマりポイントと対策
requireでエラー:- パスが間違っている →
./を付ける。 - モジュールがインストールされていない →
npm install。
- パスが間違っている →
module.exportsを忘れる:- エクスポートしないと外部から使えない。
- ブラウザでは使えない:
requireは Node.js 専用。ブラウザでは ESM を使う。
練習問題(モジュール分割)
math.jsにaddとsubをmodule.exportsで公開。main.jsでrequire('./math.js')を使って読み込み。- 計算結果をコンソールに表示。
- 効果: CommonJS の基本的なモジュール分割を体験できる。
直感的な指針
require= モジュールを読み込む。module.exports= 外に公開する。- Node.js 専用。ブラウザでは使えない。
- 初心者は「標準モジュール」「自作モジュール」「npmライブラリ」の3パターンを練習すると理解が深まる。
