Node.js的process模組

來源:互聯網
上載者:User

標籤:來源   依次   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模組

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.