標籤:來源 依次 app 全域變數 屬性 ons cep require exception
process模組用來與當前進程互動,可以通過全域變數process訪問,不必使用require命令載入。它是一個EventEmitter對象的執行個體。
屬性
process對象提供一系列屬性,用於返回系統資訊。
- process.pid:當前進程的進程號。
- process.version:Node的版本,比如v0.10.18。
- process.platform:當前系統平台,比如Linux。
- process.title:預設值為“node”,可以自訂該值。
- process.argv:當前進程的命令列參數數組。
- process.env:指向當前shell的環境變數,比如process.env.HOME。
- process.execPath:運行當前進程的可執行檔的絕對路徑。
- process.stdout:指向標準輸出。
- process.stdin:指向標準輸入。
- process.stderr:指向標準錯誤。
下面是主要屬性的介紹。
(1)stdout
process.stdout用來控制標準輸出,也就是在命令列視窗向使用者顯示內容。它的write方法等同於console.log。
exports.log = function() { process.stdout.write(format.apply(this, arguments) + ‘\n‘);};
(2)argv
process.argv返回命令列指令碼的各個參數組成的數組。
先建立一個指令檔argv.js。
// argv.js console.log("argv: ",process.argv);console.log("argc: ",process.argc);
在命令列下調用這個指令碼,會得到以下結果。
node argv.js a b c# [ ‘node‘, ‘/path/to/argv.js‘, ‘a‘, ‘b‘, ‘c‘ ]
上面代碼錶示,argv返回數組的成員依次是命令列的各個部分。要得到真正的參數部分,可以把argv.js改寫成下面這樣。
// argv.js var myArgs = process.argv.slice(2);console.log(myArgs);
方法
process對象提供以下方法:
- process.exit():退出當前進程。
- process.cwd():返回運行當前指令碼的工作目錄的路徑。_
- process.chdir():改變工作目錄。
- process.nextTick():將一個回呼函數放在下次事件迴圈的頂部。
process.chdir()改變工作目錄的例子。
process.cwd()# ‘/home/aaa‘ process.chdir(‘/home/bbb‘) process.cwd()# ‘/home/bbb‘
process.nextTick()的例子,指定下次事件迴圈首先啟動並執行任務。
process.nextTick(function () { console.log(‘Next event loop!‘);});
上面代碼可以用setTimeout改寫,但是nextTick的效果更高、描述更準確。
setTimeout(function () { console.log(‘Next event loop!‘);}, 0)事件
(1)exit事件
當前進程退出時,會觸發exit事件,可以對該事件指定回呼函數。這一個用來定時檢查模組的狀態的好鉤子(hook)(例如單元測試),當主事件迴圈在執行完’exit’的回呼函數後將不再執行,所以在exit事件中定義的定時器可能不會被加入事件列表.
process.on(‘exit‘, function () { fs.writeFileSync(‘/tmp/myfile‘, ‘This MUST be saved on exit.‘);});
(2)uncaughtException事件
當前進程拋出一個沒有被捕捉的意外時,會觸發uncaughtException事件。
process.on(‘uncaughtException‘, function (err) { console.error(‘An uncaught error occurred!‘); console.error(err.stack); });
內容來源:http://javascript.ruanyifeng.com/nodejs/basic.html#toc22
Node.js的process模組