這些對象在所有模塊里都可用。有些對象不是在全局作用域而是在模塊作用域里,這些情況下面文檔都會標注出來。
瀏覽器里,全局作用域就是頂級域。如果在全局域內定義變量 var something
將會是全局變量。 Node 里不同,頂級域并不是全局域;在模塊里定義變量 var something
只是模塊內可用。
進程對象。 參見 process object 章節.
用來打印 stdout 和 stderr. 參見console 章節.
用來處理二進制數據。 參見buffer 章節。
引入模塊。 參見Modules 章節. require
實際上并非全局的,而是各個本地模塊有效。
使用內部 require()
機制來查找 module 位置,但是不加載模塊,只是返回解析過的文件名。
引入模塊時會緩存到這個對象。通過刪除該對象鍵值,下次調用require
將會重載該模塊。
穩定性: 0 - 拋棄
指導 require
如何處理特定的文件擴展名。
將 .sjs
文件當 .js
文件處理:
require.extensions['.sjs'] = require.extensions['.js'];
拋棄 以前這個列表用來加載按需編譯的非 JavaScript 模塊到 node。實際上,有更好的辦法來解決這個問題,比如通過其他 node 程序來加載模塊,或者提前編譯成 JavaScript。
由于模塊系統已經鎖定,該功能可能永遠不會去掉。改動它可能會產生 bug,所以最好不要動它。
被執行的代碼的文件名是相對路徑。對于主程序來說,這和命令行里未必用同一個文件名。模塊里的值是模塊文件的路徑。
列如,運行 /Users/mjr
里的 node example.js
:
console.log(__filename);
// /Users/mjr/example.js
__filename
不是全局的,而是模塊本地的。
執行的 script 代碼所在的文件夾的名字。
列如,運行 /Users/mjr
里的 node example.js
:
console.log(__dirname);
// /Users/mjr
__dirname
不是全局的,而是模塊本地的。
當前模塊的引用。通過 require()
,module.exports
定義了哪個模塊輸出可用。
module
不是全局的,而是模塊本地的。
更多信息參見module system documentation。
module.exports
的引用。何時用 exports
和 module.exports
可參加module system documentation。
module
不是全局的,而是模塊本地的。
更多信息參見 module system documentation。
更多信息參見module 章節。
最少 ms
毫秒后調回調函數。實際的延遲依賴于外部因素,比如操作系統的粒度和負載。
timeout 值有效范圍 1-2,147,483,647。如果超過范圍,將會變為 1 毫秒。通常,定時器不應該超過 24.8 天。
返回一個代表定時器的句柄值。
停止一個之前通過 setTimeout()
創建的定時器。不會再被執行回調。
每隔 ms
毫秒調用回調函數 cb
。實際的間隔依賴于外部因素,比如操作系統的粒度和系統負載。通常會大于ms
。
間隔值有效范圍 1-2,147,483,647。如果超過范圍,將會變為 1 毫秒。通常,定時器不應該超過 24.8 天。
返回一個代表該定時器的句柄值。
停止一個之前通過 setInterval()
創建的定時器。不會再被執行回調。
timer 函數是全局變量。 參見timers 章節。