Node.jsには、モジュール化といってさまざまな機能を持ったプログラムを個別のファイルに分割することができる。
効率よくコードを管理できるだけでなく、さまざまなユーザーが作成したプログラムを再利用しやすくできる。
Node.jsにはこのようなモジュールを管理できるツール「npm」や「yarn」等がある。
#「exports」
基本的なモジュール化の方法として「exports」がある。
exportsを使うと、指定した値を外部のNode.jsファイルから読み込んで再利用することができるようになる。
exports.プロパティ名 = 値
この値は文字列・数値・配列・オブジェクト・関数など、さまざまなものを設定できる。
exports.str = 'こんにちは';
exports.obj = {
name: 'メロン',
price: 500,
store: '東京店舗'
};
exports.func = function() {
console.log('exportsの関数');
};
#「module.exports」
module.exportsを利用するのが一般的。
両者の大きな違いは、プロパティ名付与せずに値を直接格納できるか。
module.exportsの場合、下記の様にプロパティ名をつけずに値を設定できる。
module.exports = {
name: 'メロン',
price: 500,
store: '東京店舗'
};
「module.exports」の場合はmoduleオブジェクトの中にあるexportsプロパティを参照している。
exportsも同じようにデフォルト状態ではmoduleオブジェクトの中にあるexportsプロパティを参照しているが、値を直接格納してしまうとそれはただの新しいオブジェクトに変わってしまうからモジュール化にはならない。
#まとめ
###・exportsは任意のプロパティ名を付与することでさまざまな値をモジュール化できる
###・module.exportsも同じことが実現できてプロパティ名無しでもモジュール化できる
###・exportsは必ずプロパティ名を付与しないと正しく機能しない