[JS]モジュールのエクスポート/読み込み


ES5
エクスポート
userService.js
module.exports = { getUser, setUser, ... }
exports.getUser = getUser;
exports.setUser = setUser;
エクスポートはモジュールです.exportsのオブジェクトを参照します.
したがって、この2つの構文はエクスポート時に共通に使用されます.
module.エクスポートに割り当てると、オブジェクトが作成されて渡されます.
exportsに割り当てる場合は、key、value転送を設定します.
Node.js: exports vs module.exportsここでは、違いをより詳細に検討した記事があります.)
読み込み
const userService = require('./userService.js');
// or
const { setUser, getUser } = require('./userService.js');
requireでモジュール名を指定してインポートできます.
module.exports objectを返します.
相対パスが指定されていない場合は、defaultを使用してnode modulesディレクトリでモジュールを検索します.
ES6
エクスポート
my-module.js
default export mainModule;
export { subModule1, subModule2 };
export構文を使用します.
default exportを使用するには、オブジェクトとして渡す必要はありません.
ただし、この構文は1つのモジュールで1回しか使用できません.
また、exportは以下のようにすることもできます.
default export function mainModule { 
// ...
};

export const subModule1 = () => {
//... 
};
読み込み
import mainModule, { subModule1, subModule2 } from './my-module.js';
mainModuleはdefaultとしてエクスポートされるので、変数として受信したり、異なる変数名を指定したりすることができます.
import mainModule, * as myModules from './my-module.js';
*asとともに使用すると、myModulesという名前のネームスペースを作成できます.
esバージョンベースのモジュールエクスポート/読み込み構文について説明します.
es 6構文では、上記のexport例のようにエクスポートする値をリストする必要はありません.
また、asを利用してメンバーに新しい名前を付けることもできます.
便利な文法を提供してくれて、いい感じです.👏🏻