国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

node.js中module模塊的功能理解與用法實例分析

2024-05-06 15:44:27
字體:
來源:轉載
供稿:網友

本文實例講述了node.js中module模塊的功能理解與用法。分享給大家供大家參考,具體如下:

node.js中使用CommonJS規范實現模塊功能,一個單獨的文件就是一個單獨的模塊。通過require方法實現模塊間的依賴管理。

通過require加載模塊,是同步操作。

加載流程如下:

1、找到需要加載的模塊文件。

2、判斷是否緩存過,如果沒有,則讀取模塊文件的內容。

3、把讀取到的內容,封裝在一個函數里運行。

(function (exports, require, module, __filename, __dirname) {  //模塊的代碼實際上在這里});

4、返回 module.exports 需要導出的內容。

exports 表示模塊的導出對象

require 表示require方法

module 表示當前模塊對象

__filename 表示當前文件的絕對路徑

__dirname 表示當前文件夾的絕對路徑

在模塊的內部,this 指向的是 當前模塊的導出對象

console.log(this === module.exports);console.log(this === exports);

module對象有不少屬性,可以打印出來看看。

console.log(module);

module.id 表示模塊的標識符。

module.exports 表示模塊的導出對象。

module.parent 表示當前模塊的父模塊,當前模塊是誰加載的。

module.filename 表示模塊的絕對路徑。

module.loaded 表示是否加載完成。

module.children 表示當前模塊加載了哪些模塊。

module.paths 表示模塊的搜索路徑,路徑的多少取決于目錄的深度。

node.js通過require方法加載文件是同步的,為了提高效率,會緩存已經加載過的文件。

console.log(require.cache);

緩存的key是模塊的絕對路徑,value是module對象。

require.resolve獲取模塊的絕對路徑,但并不會加載模塊。

console.log(require.resolve('./01.js'));

require.main獲取入口模塊

console.log(require.main);

require.extensions獲取模塊支持的擴展名

node.js中模塊文件分三種:
1、.js模塊
2、.json文件模塊
3、.node C++擴展二進制模塊

console.log(require.extensions);

node.js通過require加載文件時,比如 require('./user') 會先找 user 文件,然后沒找到,再找 user.js,再找 user.json,再找 user.node。

node.js的模塊分類:

1、核心模塊,編譯二進制,加載速度最快,像 fs,http,events等。

2、文件模塊,保存在硬盤上,加載速度比較慢,通過名稱或路徑來加載。

3、第三方模塊,只指定名稱則從node_modules目錄下加載,查詢的路徑包括module.paths和全局目錄。

全局目錄:

windows中:環境變量NODE_PATH指定的路徑。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 开封市| 鹤山市| 科技| 侯马市| 德江县| 古蔺县| 昌宁县| 禹城市| 彭泽县| 柞水县| 蛟河市| 武义县| 桐乡市| 宜丰县| 米林县| 呼玛县| 西宁市| 蕲春县| 台东县| 潜江市| 澜沧| 阿拉善左旗| 荆州市| 万全县| 白山市| 方城县| 南丹县| 随州市| 巩义市| 大同县| 台东市| 工布江达县| 常德市| 张家界市| 武功县| 固镇县| 石景山区| 射阳县| 福建省| 宜兰市| 甘肃省|