Node.jsでモジュール(module)を作成する方法【初心者向け】

初心者向けにNode.jsでモジュールを作成する方法について解説しています。実際にモジュール(module)を作成するプログラムを書いています。大きな開発プロジェクトになればなるほど作業も複雑になるので、モジュールをあらかじめ作って効率化を図りましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

Node.jsのモジュールを作成する方法を解説します。

実際に簡単なモジュールを作るプログラムを書いているので、ぜひ参考にしてみてください。

 

なお本記事は、TechAcademyのNode.jsオンライン講座の内容をもとに作成しています。

 

田島悠介

今回は、自作のモジュールに挑戦してみようか。

大石ゆかり

田島メンター!モジュールってnpmでインストールして使ったものでしたよね。自分で作る場合はどうしたらいいんですか~?

田島悠介

まずモジュール用のファイルを作成して、そこに内容を書いていこう。次に呼び出し側のファイルでモジュールを読み込んで使ってみるよ。

 

node moduleとは

node moduleとは、Node.jsでnpmコマンドを使用してインストールすることで利用できる便利な機能が実装済みのモジュールです。

自前で作って使うこともできるので、より効率的な開発を行うことができます。

npmのインストール方法についても合わせてチェックしてみてください。

 

モジュールの作り方

モジュール作成の基本

モジュール側(module.js)ソースコード

exports.メソッド名 = function (変数) {
  return 処理
};

解説

Node.jsでモジュールを作成する場合はexports関数を使用します。

1行目ではexports.メソッド名のように指定して、experts.メソッド名を使用して呼び出された場合の処理を代入しています。

具体的に行う処理は、2行目から4行目までのfunction (変数) { return 処理 };になります。

 

呼び出し側(app.js)のソースコード

var sample  = require('./module.js');
console.log( sample.メソッド名(引数));

解説

1行目のrequire(‘./module.js’);では、先ほど作成したmodule.jsというモジュールをrequireを使用して呼び出しています。

その後、var sampleで宣言した変数sampleに代入しています。

2行目のsample.メソッド名(引数)では、sampleに代入してあるmoduleのメソッド名に引数を与えて結果を、console.logで表示しています。

JavaScriptでMathオブジェクトを使う方法の記事を参考にしてみてください。

田島悠介

モジュール側と呼び出し側、それぞれの基本形だね。

大石ゆかり

作成したモジュールをrequireで呼び出すのは、インストールしたものを使うときと同じですね。

田島悠介

次に実際の例で確かめてみよう。ここでは引数を3倍にするモジュール”module.js”を作成して、それを”app.js”で呼び出す形になるよ。

 

[PR] Node.jsで挫折しない学習方法を動画で公開中

モジュールを実際に作ってみよう

引数を3倍にするモジュール

モジュール側(module.js)のソースコード

exports.sanbai = function (num) {
  return num * 3;
};

解説

module.jsではexportsを使用して、sanbaiというメソッド名で引数のnumを3倍にして返しています。

 

呼び出し側(app.js)のソースコード

var sample  = require('./module.js');
console.log( sample.sanbai(3) );

表示結果

9

解説

app.jsでは、1行目でmodule.jsを呼び出してsampleに代入します。

2行目のsample.sanbai(3)では、引数に3を与えることで、3倍になった結果をconsole.logで表示しています。

表示結果は9です。

 

今回は、Node.jsのモジュールを作成する方法を解説しました。

実際にモジュールを作成する手順を知っておきましょう。

田島悠介

この状態で”app.js”を実行してみよう。どうなるかな?

大石ゆかり

モジュールで設定していた3倍の計算が反映されて、結果の数値が表示されましたね。

田島悠介

実行の際にエラーが出る場合は、呼び出し側で指定したパスなどに間違いがないか確認してみよう。

大石ゆかり

分かりました!ありがとうございます!

 

また、オンラインのプログラミングスクールTechAcademyでは、Node.jsオンライン講座を開催しています。

Node.jsを使ってWebアプリケーションを開発することができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。

この記事を監修してくれた方

中本賢吾(なかもとけんご)
アジマッチ有限会社 代表取締役社長

開発実績:PHPフレームワークを利用した会員制SNS・ネットショップ構築、AWSや専用サーバー下でLinuxを使用したセキュアな環境構築、人工知能を利用したシステム開発、店舗検索スマホアプリ開発など。

その他にも地域の職業プログラマー育成活動を行い、2018年には小学生がUnityで開発したオリジナルAndroidアプリをGooglePlayでリリース。ゲームで遊ぶより作ろうぜ!を合言葉に、小学生でも起業できる技術力を育成可能で有ることを証明し続けている。