node 中的模組使用

2022-07-30 22:27:12 字數 2966 閱讀 6745

node由三部分組成:ecmascript + 核心模組 + 第三方模組

核心模組

第三方模組

使用require匯入這個第三方模組!

通過官方文件,試著去使用這個第三方模組!

注意:無論是核心模組、還是第三方模組,都是通過 require來引用這個模組的!

乙個簡單的第三方模組使用的案例

1

//這個檔案演示一下如果使用第三方模組moment實現日期資料的格式化處理2//

3 const moment = require('moment')45

//2.定義乙個日期,現在日期值是未格式化的日期資料

6 let timenow = new

date()78

//3.呼叫moment實現對日期資料的格式化處理

9 console.log(moment(timenow).format('yyyy-mm-dd hh:mm:ss'))

匯出使用者模組中的成員

- 它是乙個物件,我們可以在這個物件上掛載你想暴露的成員

- 使用.語法在exports上掛載成員

- 使用自定義模組舉例:

//

我們所建立的js檔案就可以認為是乙個自定義模組

var obj =

function

sayhi()

//在模組中有乙個預設的物件exports,這個物件在在這個模組被引入的時候會自動的返回

//我們匯出成員的方式就是在這個物件上掛載你想暴露的成員

exports.sayhi =sayhi

exports.aa = obj

使用自定義模組:

//

如何使用使用者自定義模組:

//所有模組想使用都要先引入

//如果引入乙個模組,那麼這個模組缺省會返回乙個物件

var umodule = require('模組檔案的路徑')

umodule.sayhi()

- 它是乙個物件,我們可以在這個物件上掛載你想暴露的成員

- 使用.語法在module.exports上掛載成員

- 也可以將module.exports重置為乙個新的物件,物件中就包含你想暴露的成員 ,只要引入這個模組成員就會自動暴露

//

引入乙個模組,還會自動的暴露這個模組的module.exports物件

module.exports =

}

1.定義使用者模組

//

我們所建立的js檔案就可以認為是乙個自定義模組

var obj =

function

sayhi()

//在模組中有乙個預設的物件module.exports,這個物件在這個模組被引入的時候會自動的返回

//我們暴露成員的方式就是在這個物件上掛載你想暴露的成員

= sayhi

= obj

//也可以直接使用你想暴露的成員覆蓋module.exports

module.exports = sayhi

通過 module.exports 可以使用 . 語法的形式追加屬性,也可以使用 = 直接賦值的形式匯出成員;

exports 只能通過 . 的形式追加屬性;不能使用 = 直接賦值的形式!

注意: 在乙個 module 中,最終向外暴露的成員,以 module.exports 指向的物件為準!

在乙個模組中,不要混合使用module.exportsexports

如果使用點語法,沒有區別

如果使用重置物件,只能使用module.exprts

使用原則

優先從快取中載入:如果快取中有這個模組就直接從快取中載入(不會再去編譯指定的模組),如果快取中沒有,就載入模組,同時儲存到快取

載入核心模組:優先從快取中載入;如果快取中沒有的話,再去執行載入核心模組!

使用者自定義模組:優先從快取中載入;如果快取中沒有的話,再去執行載入使用者模組!

使用者模組的查詢規則:

如果不寫字尾名,則先嚴格按照給定的檔名去查詢模組並載入執行;按順序查詢檔案,找到則不再繼續查詢

index -> index.js -> index.json -> index.node

4.  第三方模組查詢規則:

首先,檢視專案根目錄中有沒有node_modules資料夾  

查詢node_modules資料夾中,有沒有和第三方模組名稱一致的資料夾  

在模組對應的資料夾中,查詢有沒有package.json這個檔案  

package.json檔案中,查詢有沒有main屬性  

如果有main屬性,並且main屬性指向的路徑存在,那麼就嘗試載入這個路徑指定的檔案!  

如果package.json檔案中,沒有main屬性,或者main屬性指向的路徑不存在,或者沒有package.json檔案, 那麼,node嘗試載入 模組根目錄中index->index.json->index.node

如果在node_modules資料夾中,找不到對應的模組資料夾,或者在專案根目錄中根本沒有node_modules資料夾,則向上一層資料夾中去查詢,查詢規則同上!  

如果上一層目錄中也沒有查詢到,則再向上翻一層去查詢,直到找到當前專案所在的碟符根目錄為止!  

如果找到當前碟符根目錄還找不到,則報錯:cannot find module    

node中的模組

node中乙個檔案就是乙個模組,使用exports和require來進行配置和呼叫。例如定義乙個hello模組 function hello name exports.hello hello main.js如下 var h require hello h.hello world 最後執行node m...

node中的path模組

path為nodejs的核心模組之一,主要用來處理檔案的路徑。當使用時需要引入path模組 var path require path 這裡總結一下path的屬性和方法 path.normalize src 規範化路徑,多個斜槓會被替換成乙個 路徑末尾的斜槓會被保留 windows 系統上,會使用反...

Node中的核心模組

1.node為js提供了很多伺服器級別的api,這些api絕大多數都被包裝到了乙個具名核心模組中了。例如 fs就是檔案操作的的核心模組,http服務構建的http模組,path路徑操作模組,os作業系統資訊模組 獲取系統資訊 如果想要使用模組,就要先載入他,用require 方法 2.在node中有...