【Node.js入門】requireの使い方とモジュールの作り方まとめ!

今回は、Node.jsで別ファイルのモジュールを読み込むことができる「require」について解説していきます!

「requireってどんなことができるの?」
「Node.jsで別のJSファイルを読み込む方法が知りたい」
「モジュールってどうやって作るの?」

このような疑問も含めて、本記事では以下のような内容で解説していきます!

【基礎】「require」とは?
【基礎】「require」の使い方
【実践】「require」の仕組み

この記事で、requireをしっかり学習してスキルアップを目指していきましょう!

「require」とは?

まず最初に、「require」について基本的な知識から身に付けていきましょう!

requireは、モジュール化されたJSファイルをNode.jsから効率よく読み込んで利用できるようにしてくれます。

このことからも分かるように、Node.jsにはモジュールという仕組みが備わっているのでファイルを自由に分割しやすいわけです。

ファイルを分割することでコードが整理しやすいだけでなく、モジュールをパッケージにして配布することで誰でも便利な機能を拡張できるのが特徴です。

本記事では、これらのエコシステムを実現しているのがrequireについて学習していきます。

「require」の使い方

この章では、「require」の基本的な使い方について見ていきましょう!

一般的な書き方や実際のモジュールを読み込む方法について学んでいきます。

基本的な構文と書き方について

まずは、もっとも基本となるrequireの書き方について見ていきましょう。

一般的にrequireを使うケースというのは、パッケージを利用する時か別ファイルのモジュールを読み込む時が多いでしょう。

これらのパッケージ名やファイルのパスをrequireの引数へ指定するだけで利用することができます!

var 変数 = require(パッケージ名)

var 変数 = require(モジュールのファイルパス)

requireを実行して変数へ代入することで利用できるようになります。

これは簡単に言うと、JavaScriptにおけるインスタンス化の感覚に近いものがありますね。

Node.jsのモジュールを読み込んでみる

それでは、実際にrequireを使ったサンプルを見てみましょう!

例えば、npmを使って「express」のパッケージを次のようにインストールしたとします。

$ npm install express

すると、Node.jsではrequireを使って読み込む必要があるわけです。

var express = require('express');

これで、変数「express」を使ってフレームワークを利用することができます。

また、自作のファイルや別ファイルのモジュールを読み込む場合は次のようにファイルパスを指定します。

var sample = require('./sample.js');

このようにパスをrequireの引数へ設定すれば、モジュールを読み込んで使うことができます。

「require」の仕組み

この章では、requireをさらに詳しく見ていきましょう!

主に、簡単なモジュールを作成してrequireで読み込むまでを学んでいきます。

exportsでファイルをモジュール化する

まずは、Node.jsで提供されているモジュールの仕組みがどのようになっているのかを見ていきましょう!

基本的に、ファイルをモジュール化して別のファイルから読み込めるようにするには「exports」を使います。

つまり、他のファイルから利用したいデータをすべてexportsで設定するというわけです。

次のサンプル例を「sample.js」というファイル名で保存しましょう!

var item = 'リンゴ';
var getName = function() {
  console.log(item + "です");
}
var obj = {
  name: 'メロン',
  price: 500,
  store: '東京店舗'
}

exports.item = item;
exports.getName = getName();
exports.obj = obj;

この例では、単純な変数「item」と関数「getName」、オブジェクト「obj」を作成しています。

そして、それぞれのデータを別のファイルからも利用できるように「exports」しているのが分かりますね。

これにより、読み込み先のファイルでrequireすることでデータを再利用できるというわけです。

requireでパスを指定してファイルを読み込む

先ほど作成したファイル「sample.js」を実際にrequireを使って読み込んでみましょう!

var sample = require('./sample.js');

このようにファイル名のパスをrequireの引数へ指定すればOKです!

以降は変数「sample」を使ってモジュールのデータにアクセスすることができるようになります。

次のサンプル例を見てください!

console.log(sample.item);
sample.getName;
console.log(sample.obj);

実行結果

リンゴ
リンゴです
{ name: 'メロン', price: 500, store: '東京店舗' }

それぞれ「sample.js」でexportsした変数や関数・オブジェクトが取得できているのが分かりますね。

基本的にはパッケージ化されているファイルも構造自体はだいたい同じ仕組みになっています。

このように柔軟な仕組みが提供されているため、Node.jsでは簡単に機能を拡張できるパッケージが多数配布されているのです。

まとめ

今回は、Node.jsからモジュールを簡単に読み込める「require」について学習しました!

最後に、もう一度ポイントをおさらいしておきましょう!

・requireはパッケージや別ファイルのモジュールを読み込める
・モジュールは別ファイルから利用したいデータをexportsする
・requireはexportsされたデータを利用できるようにしてくれる

上記内容を踏まえて、ぜひ自分でもプログラミングに取り入れて活用できるように頑張りましょう!

プログラミング学習を効率良く進めたいなら…

学習を始めたけどエラーが解決できない
作りたいものはあるけど、何から始めればいいかわからない
プログラミングに対して、このような悩みを持っている方も多いですよね。

そんな方には、弊社が運営するサブスク型のプログラミングスクール「SAMURAI ENGINEER Plus+がおすすめです。



月額2980円(税別)で、主に4つのサービスを提供させていただきます。

  • 現役エンジニアによる月1度の「マンツーマン指導」
  • 平均回答時間30分の「Q&Aサービス」
  • 作りながら学べる28種類の「教材」
  • 学習を記録&仲間と共有できる「学習ログ」

目的にあった教材を選べば、どなたでも効率よく学習できるほか、Q&Aサービスやマンツーマン指導を活用することで、挫折せずにプログラミングの習得が可能です。

プログラミングを効率的に学びたい人はもちろん、何から始めたらよいのかわからない方は、ぜひ「SAMURAI ENGINEER Plus+」をご利用ください。
まずは30日無料体験

書いた人

マサト

フリーランスのIT系ライターを10年従事する兵庫県出身の40歳。侍ブログ編集部としては、これまで270記事以上を執筆。
30歳を過ぎてから独学でJavaScript, Node.js, Linuxを習得した経験を活かし、初心者が迷わない記事作成を意識しながらプログラミングの楽しさを知ってもらうために活動しています。趣味はキャンプと登山です。