Node.js | Local Modules(自建模組)

進行自建模組編寫時,最後需使用 export 方式傳出去。屆時任何應用進行 request 載入時才能正常接洽使用回傳內容。export 本身是一個變數,它屬於整個 module 模型下的原生練物件。因此只要將想回傳的東西指定給 export(可以是字串或文字)即可。

2023/08/17 補充:

module.exports/require

是CommonJS的標準,在 ES module export/import 之前熱門的模組化標準,被Node.js導入

將 exports 當作物件,指定三種名稱函式

javascript

// mod.js

exports.en = function (userName) {
  console.log('Hello! ' + userName);
};
exports.tw = function (userName) {
  console.log('你好!' + userName);
};
exports.hk = function (userName) {
  console.log('雷侯!' + userName);
};

將完整的物件指定給 export

javascript

// mod.js

const hello = {
  en: function (userName) {
    console.log('Hello! ' + userName);
  },
  tw: function (userName) {
    console.log('你好!' + userName);
  },
  hk: function (userName) {
    console.log('雷侯!' + userName);
  }
};
module.exports = hello;  
/********************
exports = hello;       也能直接寫成這樣省略 module 字樣
********************/

/****另一種簡化後的寫法
module.exports = {
  en: function (userName) {
    console.log('Hello! ' + userName);
  },
  tw: function (userName) {
    console.log('你好!' + userName);
  },
  hk: function (userName) {
    console.log('雷侯!' + userName);
  }
};
****/

javascript

// test.js

/*
  自訂模組的 require時需指定相對路徑,而原生或 npm 包裝的模組不需要
  .js 副檔名可省略,將會自動去尋找屬於 js 副檔名之檔名

  const myMod = require('./mod.js');
*/
const myMod = require('./mod');
myMod.tw("Loki");

shell

L:\nodeDemo>node test.js
你好!Loki