LoginSignup
3
1

More than 5 years have passed since last update.

Node.js基礎ーモジュールのエクスポート

Posted at

初めに

Node.jsではrequireやimportな文法を使って既存のコードの入を行います。
そもそもなぜrequireだけで機能拡張実現できるのかはよく分からないので、今回はモジュールのインポートの流れを整理してみます。

モジュールのインポートの例

先ず、呼べれる関数myfunction.jsを作成します:

function MyFunction() {
    console.log('Hello World!');
}

module.exports = MyFunction;

呼ぶ側も作成してみよう:

var MyFunction = require('./myfunction');

MyFunction(); // Hello World!

 要するに

モジュールのエクスポート:

module.exports = variable_name;

モジュールのインポート:

var foo = require('module_path');

なぜ'module.exports'だけでできるの

それは、jsファイルがNodeにロードされる前に、Node側はあらかじめmoduleという変数を用意します。

// module変数を用意
var module = {
    id: 'myfunction',
    exports: {}
};
var load = function (module) {
    // 元々のコード:
    function MyFunction() {
        console.log('Hello World!');
    }

    module.exports = MyFunction;
    return module.exports;
};
var exported = load(module);
// module保存
save(module, exported);

上記のように、Nodeは全てのエクスポートを記載しているmodule変数を保管しているから、他のモジュールに導入の時にmodule変数をチェックすれば機能拡張を実現できます。

終わり

今回はモジュールのエクスポートの流れを整理してみまました。なんかDIっぽい気がします。
ちなみに、今回はCommonJSで整理しましたが、ES6標準に合わせるため、requireではなくて、importを使用した方がいいと思われます。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1