(1)全域性物件
在瀏覽器js中,通常window是全域性物件,而nodejs中的全域性物件是global,所有全域性變數都是global物件的屬性。
在nodejs中能夠直接訪問到的物件通常都是global的屬性,如console、 process等
全域性物件與全域性變數
global最根本的作用是作為全域性變數的宿主。
全域性變數的條件:
在最外層定義的變數;全域性物件的屬性;隱式定義的變數(未定義直接賦值的變數)
定義乙個全域性變數,同時也是全域性物件的屬性。
永遠使用var定義變數以避免引入全域性變數,因為全域性變數會汙染命名空間,提高**的耦合風險。
process
process是乙個全域性變數,即global物件的屬性。它用於描述nodejs程序狀態的物件,提供乙個與作業系統的簡單介面。
process.ar**是命令列引數陣列,第乙個元素是node, 第二個是指令碼檔名,從第三個開始每個元素是乙個執行引數。
console.log(process.ar**);
process.stdout是標準輸出流。
process.stdin是標準輸入流。
process.nexttick(callback)的功能是為事件迴圈設定一項任務,會在下次事件迴圈調響應時呼叫callback
還有process.platform, process.pid, process.execpath, process.memoryusage()等。posix程序訊號響應機制。
console
用於提供控制台標準輸出。
console.log()
console.error()
console.trace()
(2)常用工具util
util.inherits
實現物件間原型繼承的函式。js物件導向特性是基於原型的。
util.inspect
將任意物件轉換為字串的方法。
util.isarray(), util.isregexp(), util.isdate(), util.iserror(), util.format(), util.debug()等
(3)事件機制events
最重要的模組,因為nodejs本身架構就是事件式的,提供了唯一的介面,堪稱nodejs事件程式設計的基石。
事件發射器
events模組只提供乙個物件events.eventemitter.它核心就是事件發射與事件監控器功能的封裝。
eventemitter.on(event,listener)
eventemitter.emit(event, [arg1], [arg2], …)
eventemitter.once(event, listener)
eventemitter.removelistener(event,listener)
eventemitter.removealllisteners([event])
error事件
遇到異常的時候,通常會發射error事件。
繼承eventemitter
不會直接使用eventemitter, 而是在物件中繼承它。包括fs, net, http在內,只要是支援事件響應的核心模組都是eventemitter的子類。
(4)檔案系統訪問fs
檔案操作的封裝,提供了檔案的讀取、寫入、更名、刪除、遍歷目錄、鏈結等posix檔案系統操作。有非同步和同步兩個版本。
fs.readfile
fs.readfilesync
fs.open
fs.read
(5)http伺服器與客戶端
獲取get請求內容
獲取post請求內容
http客戶端
http.request和http.get, 功能是作為客戶端向http伺服器發起請求。
callback傳遞乙個引數,為http.clientresponse的例項。
http.request返回乙個http.clientrequest的例項。
nodejs核心模組之http
http模組包含以下5個核心類和方法及屬性 核心類 2.http.createserver 該方法返回http.server類的例項,該例項繼承了eventemitter 類。eventemitter 類有乙個特殊的事件error,當連線失敗的時候會自動觸發該error事件,因此在建立http伺服器...
概述nodejs模組系統核心原理
test.js require x 複製 x是node核心模組 如http,zlib等 則返回,否則繼續 根據module物件的paths屬性一直遞迴找node modules資料夾下是否存在該模組,直到根目錄,否則丟擲error module not found x是路徑 如 path to fi...
nodejs模組 http模組
處理url請求 var fs require fs 主頁function home res res.write content res.end about.html 關於頁面 function about res res.write content res.end 匯出頁面處理函式 exports....