Part4:モジュール

海未「今回はモジュールについてです。前回出てきたhttpのように、ライブラリとして機能をひとまとめにしたモジュールの作り方と使い方を見てみましょう」

海未「1つのモジュールは1つのファイルだと考えてください。他のファイルに書かれたコードを利用するための仕組みですね」
ことり「コードの再利用の基本だね」

海未「はじめに関数を公開するパターンです。ファイルを2つ用意して、モジュールの側のファイルでは」

海未「このように、module.exportsに関数を代入します。次にモジュールの利用側ですが」

海未「requireを使ってこのように書きます。この場合requireは先ほどの関数を返すので、それを呼び出しています」
穂乃果「えーと、ファイトだよっ!って出た。モジュールの関数が呼べてるんだね」
海未「はい。これはもちろん」

海未「こう書いても構いません」

海未「関数ではなくオブジェクトを公開することもできます。こちらの方が一般的ですね」

海未「オブジェクトリテラルで書いたオブジェクトを代入してあげます。すると利用側では」

海未「このように呼び出すことができます。require("./module.js")の結果は変数に入れておく方が手軽かもしれませんね」
ことり「前回のhttpはそうしてたよね」

海未「requireでは引数にファイル名を渡していました。しかし、読み込むモジュールの数が多いときには全部書くのは大変です」
穂乃果「これだと1ファイルだからいいけど、10ファイルあったら10回require書かなきゃいけないってことだよね」
海未「それを解決するため、ファイルではなくディレクトリを指定する機能があります」

  • app.js
  • modules/
    • index.js
    • honoka.js
    • kotori.js
    • umi.js

海未「このようなディレクトリ構造を作ったとしましょう。そうすると、app.,jsでは」

海未「このようにディレクトリを指定することができます」
穂乃果「これで全ファイル読んでくれるの?」
海未「いえ、この場合、index.jsという名前のファイルを読み込みます。そのindex.jsに」

海未「このように書いておけばapp.jsでは」

海未「各モジュールを利用できます」
ことり「index.jsは文字通り目次なんだね」

海未「とりあえずはこのくらい知っておけば大丈夫でしょう。モジュールはパッケージ化してnpmというパッケージマネージャから入手したり配布したりできますが、それはまた別の機会に」
ことり「コードの整理整頓は大事だよね♪」
海未「次回からはNode.jsの機構の中でも特に重要な、イベントに関するところを見ていきましょう」


LINEで送る
Pocket


返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です