新聞中心
這篇文章主要介紹了Node.js中的process對象是什么,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
成都創(chuàng)新互聯(lián)始終堅持【策劃先行,效果至上】的經(jīng)營理念,通過多達10年累計超上千家客戶的網(wǎng)站建設(shè)總結(jié)了一套系統(tǒng)有效的全網(wǎng)推廣解決方案,現(xiàn)已廣泛運用于各行各業(yè)的客戶,其中包括:攪拌罐車等企業(yè),備受客戶贊賞。
process 對象是一個全局變量,是一個 EventEmitter 實例,提供了當前 Node.js 進程的信息和操作方法
系統(tǒng)信息
process 對象提供了屬性用于返回關(guān)鍵系統(tǒng)信息,常用的有
- title:進程名稱,默認值 node,程序可以修改,可以讓錯誤日志更清晰
- pid:當前進程 pid
- ppid:當前進程的父進程 pid
- platform:運行進程的操作系統(tǒng)(aix、drawin、freebsd、linux、openbsd、sunos、win32)
- version:Node.js 版本
- env:當前Shell的所有環(huán)境變量
stdin & stdout
Node.js 和標準輸入、輸出設(shè)備交互對象也通過 process 對象提供
process.stdin.pipe(process.stdout)
簡單一行代碼可以實現(xiàn)把控制臺輸入內(nèi)容在控制臺原樣打印出來
執(zhí)行信息
process.execPath
process.execPath 屬性返回執(zhí)行當前腳本的 Node 二進制文件的絕對路徑
process.argv
process.argv 屬性返回一個數(shù)組,內(nèi)容是執(zhí)行腳本時的參數(shù),但數(shù)組前兩個固定
執(zhí)行當前腳本的 Node 二進制文件的絕對路徑
當前執(zhí)行文件絕對路徑
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 屬性返回一個數(shù)組,成員是命令行下執(zhí)行腳本時,在 Node 可執(zhí)行文件與腳本文件之間的命令行參數(shù)process.js
console.log(process.execArgv);
node --inspect process.js [ '--inspect' ]
常用操作方法
- process.chdir():切換工作目錄到指定目錄
- process.cwd():返回運行當前腳本的工作目錄的路徑,也就是執(zhí)行 node 命令時候的目錄
- process.exit():退出當前進程
- process.memoryUsage():返回 Node.js 進程的內(nèi)存使用情況
進程事件
process 對象是 EventEmitter 對象實例,可以監(jiān)聽一些系統(tǒng)核心事件, 常使用的有
exit
當 Node.js 進程因以下原因之一即將退出時,則會觸發(fā) exit
事件:
- 顯式調(diào)用
process.exit()
方法 - Node.js 事件循環(huán)不再需要執(zhí)行任何其他工作
此時無法阻止退出事件循環(huán),并且一旦所有 exit
事件的監(jiān)聽器都已完成運行時,Node.js 進程將終止
process.on('exit', (code) => { console.log(`退出碼: ${code}`); });
uncaughtException
當前進程拋出一個沒有被捕捉的錯誤時,會觸發(fā)uncaughtException
事件
process.on('uncaughtException', function (err) { console.error(err.stack); });
beforeExit
當 Node.js 清空其事件循環(huán)并且沒有其他工作要安排時,會觸發(fā) beforeExit
事件。 通常 Node.js 進程將在沒有調(diào)度工作時退出,但是在 beforeExit
事件上注冊的監(jiān)聽器可以進行異步調(diào)用使 Node.js 進程繼續(xù)
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()
發(fā)送的消息,就會觸發(fā) message
事件
process.on('message', (m) => { console.log('子進程收到消息', m); });
process.nextTick(callback)
process.nextTick() 方法將 callback 添加到下一個時間點的隊列執(zhí)行
感謝你能夠認真閱讀完這篇文章,希望小編分享Node.js中的process對象是什么內(nèi)容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細的解決方法等著你來學(xué)習(xí)!
當前名稱:Node.js中的process對象是什么
鏈接URL:http://ef60e0e.cn/article/ghjpso.html