exports / module.exports - Node.js

module.exports

1つだけをエクスポートするモジュールがある場合などは module.exports を使用するのが一般的。

ファイルを読み込む際に「 require('./module') 」の「 ./ 」をつけず、ファイル名だけを指定するとパッケージを読み込みます。「 module 」というパッケージがない場合は、エラーになります。

セットされている内容が関数の場合は以下のようにします。

moudle.js

module.exports = function(str){
  console.log(str);
  console.log("module function");
}

script.js

const md = require('./module');

md("hello");

セットされている値がオブジェクトの場合は以下のようにします

module.js

module.exports = {
  name: 'apple',
  price: 100
}

script.js

const md = require('./module');

console.log(md);

プロパティ名を指定する場合は以下のようにします。

プロパティ名は任意で指定することができます。

module.js

module.exports.func = function(str){
  console.log(str);
  console.log("module function");
}

script.js

const md = require('./module');

md.func("hello");

exports

初期状態では exports は module.exports を参照するショートカットのようなもの。

moudle.js

exports.func = function() {
  console.log('hello, world');
};

script.js

const md = require('./module');

console.log(md);
console.log(md.str);
md.func();

// 実行結果
{ func: [Function (anonymous)], str: 'HELLO, WORLD' }
HELLO, WORLD
hello, world