首頁 > web前端 > js教程 > 了解Node.js中的process對象

了解Node.js中的process對象

青灯夜游
發布: 2020-12-01 17:36:24
轉載
3738 人瀏覽過

了解Node.js中的process對象

相關推薦:《node js教學

process 物件是一個全域變量,是一個EventEmitter 實例,提供了當前Node.js 進程的資訊和操作方法

系統資訊

process 物件提供了屬性用於傳回關鍵系統訊息,常用的有

  • title:行程名稱,預設值node,程式可以修改,可以讓錯誤日誌更清晰
  • pid:目前行程pid
  • ppid:目前行程的父行程pid
  • # platform:執行進程的作業系統(aix、drawin、freebsd、linux、openbsd、sunos、win32)
  • version:Node.js 版本
  • env:​​目前Shell的所有環境變數

stdin & stdout

Node.js 和標準輸入、輸出裝置互動物件也透過process 物件提供

process.stdin.pipe(process.stdout)
登入後複製

簡單一行程式碼可以實現把控制台輸入內容在控制台原樣列印出來

執行訊息

process.execPath

process.execPath 屬性傳回執行目前腳本的Node 二進位檔案的絕對路徑

process.argv

process.argv 屬性傳回一個數組,內容是執行腳本時的參數,但數組前兩個固定

  • #執行目前腳本的Node 二進位檔案的絕對路徑

  • 目前執行檔絕對路徑

#process.js

console.log(process.argv);
登入後複製
node process.js a --b=2

[
  '/usr/local/bin/node',
  '/Users/undefined/node-demo/process.js',
  'a',
  '--b=2'
]
登入後複製

process.execArgv

process.execArgv 屬性傳回一個數組,成員是命令列下執行腳本時,在Node 可執行檔與腳本檔之間的命令列參數

process.js

console.log(process.execArgv);
登入後複製
node --inspect process.js

[ '--inspect' ]
登入後複製

常用操作方法

  • process.chdir():切換工作目錄到指定目錄
  • #process.cwd():傳回執行目前腳本的工作目錄的路徑,也就是執行node 指令時候的目錄
  • process.exit():退出目前程序
  • process.memoryUsage( ):傳回Node.js 進程的記憶體使用情況

進程事件

process 物件是EventEmitter 物件實例,可以監聽一些系統核心事件, 常用的有

exit

當Node.js 流程因下列原因之一即將退出時,則會觸發exit 事件:

  • 明確呼叫process.exit() 方法
  • Node.js 事件循環不再需要執行任何其他工作
##此時無法阻止退出事件循環,並且一旦所有

exit 事件的監聽器都已完成運行時,Node.js 進程將終止

process.on('exit', (code) => {
  console.log(`退出码: ${code}`);
});
登入後複製
uncaughtException

當前進程拋出一個沒有被捕捉的錯誤時,會觸發

uncaughtException事件

process.on('uncaughtException', function (err) {
  console.error(err.stack);
});
登入後複製
beforeExit

當Node.js 清空其事件循環且沒有其他工作要排程時,會觸發 

beforeExit 事件。通常Node.js 進程會在沒有調度工作時退出,但是在 beforeExit 事件上註冊的監聽器可以進行非同步呼叫使Node.js 進程繼續

process.on('beforeExit', (code) => {
  console.log('进程 beforeExit 事件的代码: ', code);
});

process.on('exit', (code) => {
  console.log('进程 exit 事件的代码: ', code);
});

console.log('此消息最新显示');

// 打印:
// 此消息最新显示
// 进程 beforeExit 事件的代码: 0
// 进程 exit 事件的代码: 0
登入後複製
message

#如果使用IPC 通道fork Node.js 進程,子進程收到父進程使用

childprocess.send() 發送的訊息,就會觸發message 事件

process.on('message', (m) => {
  console.log('子进程收到消息', m);
});
登入後複製
process.nextTick(callback)

process.nextTick() 方法將callback 新增至下一個時間點的佇列執行

更多程式相關知識,請造訪:

程式設計視訊課程! !

以上是了解Node.js中的process對象的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:cnblogs.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板