Node.js Module Learn

Module 的源碼分析
http://blog.csdn.net/leoleocs/article/details/50245677

Node.js 官方文檔中 Module 的介紹
http://nodejs.cn/api/modules.html

module.exports 和 exports 的關系說明,評論處有模擬實現(xiàn) module.exports 的代碼
http://cnodejs.org/topic/52308842101e574521c16e06

主要解答了自己的幾個問題。

  1. Module 和文件的關系?
    node.js 有一個 NativeModule。在加載一個js文件的時候,會以文件名生成一個新的Module,存儲在NativeModule的數組中。所以一個Module對應一個文件,加載多少js文件,就會有多少module。

  2. exports 和 module.exports 的關系
    因為 require() 實際上是將模塊的代碼用一個“函數”包裝好,返回module.exports,“函數”的參數有 module 和 module.exports 。所以我們才可以在自定義的模塊中使用 exports 、 module 、module.exports。
    重點在于《JS傳參是副本傳遞,而不是引用傳遞。這點大部分編程語言都是這樣的阿》。所以exports相當于是module.exports 的副本,而不是引用。
    所以可以通過設置 module.exports 為方法或者常量,來使得 require()導出的內容是需要的東西。

  3. 如何直接運行 js 文件
    終端輸入
    node a.js

補充。ES6出來的模塊化解決方案 import export
export 可以通過 export default xxx 指定模塊的默認輸出。
但是 node.js 不一定支持,還得用一些第三方包來將 ES6語法轉為 ES5語法。
實際上 和 上面 module.exports require 效果是一樣的叻。

export 指定變量標識符后, import 可以導出同名的變量標識符使用。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容