Node.js中process模塊常用的屬性和方法
前言
雖然node對操作系統(tǒng)做了很多抽象的工作,但是你還是可以直接和他交互,比如和系統(tǒng)中已經存在的進程進行交互,創(chuàng)建工作子進程。node是一個用于事件循環(huán)的線程,但是你可以在這個事件循環(huán)之外創(chuàng)建其他的進程(線程)參與工作。
如果不是和命令行工具打交道,可能我們很少有機會去用到process模塊中的一些方法或者屬性。不過如果你要做類似于webpack或者gulp等較為復雜的構建工具,由于bash界面就是和用戶直接交流的工具,因此友好的輸入輸出,完整的提示都非常有必要了。
屬性
一張表格大概可以看到process有哪些屬性
屬性名稱 | 用途 |
platform | 判斷當前系統(tǒng)平臺 |
argv | 當前進程的命令行參數數組 |
execPath | 當前進程的可執(zhí)行文件的絕對路徑 |
stdout | 指向標準輸出 |
stdin | 指向標準輸入 |
stderr | 指向標準錯誤 |
stderr | 指向標準錯誤 |
我們可以直接在代碼中這樣使用
console.log(porcess.platform) // darwin
使用argv 會返回命令行的數組,我們可以通過數組來獲取用戶具體的命令
console.log(process.argv); // [ '/usr/local/bin/node', '/Users/ali-130257n/www/weex-jackzoo/projects/demo.js', '-p', '-v' ]
一般情況下,我們更想獲取最后的一些參數,前面兩個不需要,我們可以
let args = process.argv.slice(2); console.log(args) // [ '-p', '-v' ]
方法
process 提供的方法有很多。大致我們可以用到的有下面一些。
cwd
:返回運行當前腳本的工作目錄的路徑
abort
:立即結束進程
nextTick
: 指定下次事件循環(huán)首先運行的任務
process 支持的一些事件,通過一些事件,我們可做一些友好的提示或者處理。
uncaughtException
:當前進程拋出一個沒有被捕捉的意外時,會觸發(fā)uncaughtException事件
message
: 接受來自父進程的消息
rejectionHandled
:用于捕獲與它關聯(lián)的promise錯誤處理并且產生的reject
unhandledRejection
: 同理這個便是用于捕獲沒有與之關聯(lián)promise錯誤處理的reject
const unhandledRejections = new Map(); process.on('unhandledRejection', (reason, p) => { unhandledRejections.set(p, reason); }); process.on('rejectionHandled', (p) => { unhandledRejections.delete(p); });
warning: 當前進程產生一個警告的時候出發(fā)
process.on('warning', (warning) => { console.warn(warning.name); // Print the warning name console.warn(warning.message); // Print the warning message console.warn(warning.stack); // Print the stack trace });
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
相關文章
使用node-media-server搭建一個簡易的流媒體服務器
這篇文章主要介紹了使用node-media-server搭建一個簡易的流媒體服務器,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01