關(guān)于node的一些基本概念
- process: 該對象表示Node所處的當(dāng)前進(jìn)程悉尾,允許開發(fā)者與該進(jìn)程互動突那。
- global: 表示Node所在的全局環(huán)境,類似于瀏覽器的window對象构眯。需要注意的是愕难,如果在瀏覽器中聲明一個全局變量,實際上是聲明了一個全局對象的屬性惫霸,比如
var x = 1
等同于設(shè)置window.x = 1
猫缭,但是Node不是這樣,至少在模塊中不是這樣(REPL環(huán)境的行為與瀏覽器一致)壹店。在模塊文件中猜丹,聲明var x = 1
,該變量不是global對象的屬性硅卢,global.x等于undefined射窒。這是因為模塊的全局變量都是該模塊私有的藏杖,其他模塊無法取到。 - __filename: 指向當(dāng)前運行的腳本文件名脉顿。
- __dirname: 指向當(dāng)前運行的腳本所在的目錄蝌麸。
- Buffer():用于操作二進(jìn)制數(shù)據(jù)。
核心模塊
- http: 提供HTTP服務(wù)器功能艾疟。
- url:解析url祥楣。
- fs: fileSystem,與文件系統(tǒng)交互汉柒。
- querystring: 解析url的查詢字符串误褪。
- util:提供一些實用的小工具。
- path:提供路徑處理碾褂。
- child_process:新建子進(jìn)程兽间。
- crypto:提供加密和解密功能,基本上是對OpenSSL的包裝正塌。
上面這些核心模塊嘀略,源碼都在Node的lib子目錄中。為了提高運行速度乓诽,它們安裝時都會被編譯成二進(jìn)制文件帜羊。
核心模塊總是最優(yōu)先加載的。如果你自己寫了一個HTTP模塊鸠天,require('http')
加載的還是核心模塊讼育。