首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Node.js 模組系統完整指南:從入門到實戰

     編輯:Java 綜合教學

Node.js 模組系統完整指南:從入門到實戰

模組是 Node.js 應用程序的基本組成單元,採用「一個文件即一個模組」的設計理念。模組系統讓文件之間能夠相互調用,支援 JavaScript、JSON 和 C/C++ 編譯擴展三種類型。本文通過實例詳解模組的創建、導出與引入機制。

模組基礎概念

Node.js 提供兩個核心對象:exports 作為模組公開接口,require 用於獲取外部模組的接口(即該模組的 exports 對象)。模組路徑解析規則:./ 表示當前目錄,默認補全 .js 後綴。

實例一:基礎導出與引入

// MyModule.js
var name;
exports.setName = function (theName) { name = theName; }
exports.sayHello = function () { console.log('hello guys my name is ' + name); }

// app.js
var myMD1 = require('./MyModule');
myMD1.setName('longlingxiu');
myMD1.sayHello();

此例通過 exports 逐個掛載方法,適合導出多個獨立功能的場景。

實例二:導出構造函數(單例/工廠模式)

// MyModule.js
function Hello() {
    var name;
    this.setName = function (theName) { name = theName; }
    this.sayHello = function () { console.log(name); }
}
module.exports = Hello;  // 關鍵:直接導出構造函數

// app.js
var Hello = require('./MyModule');
var hello = new Hello();
hello.setName('====ok===');
hello.sayHello();

關鍵區別:module.exports 是真正的導出對象,exports 只是其引用。重新賦值 exports 會切斷與 module.exports 的關聯,導致導出失效。需用 module.exports = ... 導出類、函數或單一對象。

最佳實踐建議

  • 優先使用 module.exports 導出單一職責的實體(類/函數/對象)
  • 避免循環依賴,必要時延遲 require 或重構架構
  • 利用 node_modules 解析機制管理第三方依賴
  • 採用 ESM(import/export)作為現代項目標準,配合 "type": "module" 或 .mjs 後綴

總結

理解 exports 與 module.exports 的關係是掌握 Node.js 模組系統的關鍵。合理拆分模組、明確導出介面,能顯著提升代碼可維護性與復用性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved