JavaScript 逆引き集 | require(CommonJS)

JavaScript Excel VBA
スポンサーリンク

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);
JavaScript
  • require('fs') → Node.js 標準のファイル操作モジュールを読み込む。
  • fs.readFileSync → ファイルを同期的に読み込む。

自作モジュールを読み込む

utils.js

function hello(name) {
  return `こんにちは ${name}`;
}

// 外部に公開
module.exports = { hello };
JavaScript

main.js

const utils = require('./utils.js');

console.log(utils.hello("Aki")); // → "こんにちは Aki"
JavaScript
  • module.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));
JavaScript

1つだけ公開

// 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
  • 混在注意: 同じファイルで両方を混ぜるとエラーになることがある。
  • npmライブラリ: 外部パッケージは npm install で追加してから require
  • 相対パス: 自作モジュールは ./ を忘れない。
  • 同期/非同期: ファイル操作は readFileSync(同期)と readFile(非同期)がある。

ありがちなハマりポイントと対策

  • require でエラー:
    • パスが間違っている → ./ を付ける。
    • モジュールがインストールされていない → npm install
  • module.exports を忘れる:
    • エクスポートしないと外部から使えない。
  • ブラウザでは使えない:
    • require は Node.js 専用。ブラウザでは ESM を使う。

練習問題(モジュール分割)

  1. math.jsaddsubmodule.exports で公開。
  2. main.jsrequire('./math.js') を使って読み込み。
  3. 計算結果をコンソールに表示。
  • 効果: CommonJS の基本的なモジュール分割を体験できる。

直感的な指針

  • require = モジュールを読み込む。
  • module.exports = 外に公開する。
  • Node.js 専用。ブラウザでは使えない。
  • 初心者は「標準モジュール」「自作モジュール」「npmライブラリ」の3パターンを練習すると理解が深まる。
タイトルとURLをコピーしました