天天看點

Node子產品

什麼是子產品

浏覽器開發中的子產品,在浏覽器開發中為了避免命名沖突,友善維護等等,我們采用類或者立即執行函數的方式來封裝 JS 代碼,來避免命名沖突和提升代碼的維護性,其實這裡的一個類或者是一個立即執行的函數就是浏覽器開發中的一個子產品,如下所示:

let obj = {
  子產品中的業務邏輯代碼
};      
;(function(){
  子產品中的業務邏輯代碼
  window.xxx = xxx;
})();      

如上的方式存在的問題,沒有标準沒有規範

NodeJS開發中的子產品

NodeJS 采用了 ​

​CommonJS​

​ 規範實作了子產品系統

CommonJS規範

CommonJS 規範規定了如何定義一個子產品,如何暴露(導出)子產品中的變量函數,以及如何使用定義好的子產品

  • 在 CommonJS 規範中一個檔案就是一個子產品
  • 在 CommonJS 規範中每個檔案中的變量函數都是私有的,對其他檔案是不可見的,也就是其它檔案通路不到的
  • 在 CommonJS 規範中每個檔案中的變量函數必須通過​

    ​exports​

    ​ 暴露(導出)之後其它檔案才可以使用
  • 在 CommonJS 規範中想要使用其它檔案暴露的變量函數必須通過​

    ​require()​

    ​ 導入子產品才可以使用

例如如下所示:

a.js 内容如下

let name = "it6666.top";

function sum(a, b) {
    return a + b;
}

exports.str = name;
exports.fn = sum;      

b.js 内容如下

let aModule = require("./06-a");

console.log(aModule);
console.log(aModule.str);

let res = aModule.fn(10, 20);
console.log(res);      
Node子產品