當前位置:
首頁 > 最新 > Node執行外部程序時候出現的異常

Node執行外部程序時候出現的異常

如果你需要調用的外部程序不存在,那麼此時將會遇到一個ENOENT的錯誤,通常這樣的錯誤都是因為我們把外部應用程序的名稱或者是路徑輸入錯了導致的,這樣一來,Node必然找不到這個需要被調用的外部應用,如圖所示

另外一種情況,如果外部應用程序確實存在,但是Node卻無法訪問它(通常情況下都是因為沒有足夠的許可權),此時你將會遇到一個EACCES或者是EPERM的錯誤。為了解決諸如這樣的問題,你要麼通過使用一個具有足夠許可權的用戶來運行當前需要調用外部程序的Node的程序,要麼對需要被調用的外部程序許可權設置進行修改,使它可以被訪問得到。

還有,當被調用執行的外部程序退出返回的狀態碼是非零狀態時,它表示該程序不能夠在當前的平台(Windows或者是Unix)下執行對應的任務。在這種情況下,Node就會把該返回的狀態碼作為異常對象和其他一切可能返回的數據傳入到stdout和stderr,如下面的代碼:

設想,此時code的值是1,表示命令執行失敗;具體的錯誤信息存儲在stderr中。

綜上所述,當我們只是需要執行一個外部程序,不管是否需要得到執行之後的結果的時候,使用execFile方法確實是一個不錯的選擇。比如說,如果現在需要執行一個圖片處理的操作,並且只關心它是否運行成功,那麼你只需要使用execFile執行一下ImageMagick就可以。如果你想執行的這個外部應用會有很多的輸出,並且你又想對輸出的結果進行一個實時性分析,那麼這個時候,使用流則會是一個更好的辦法。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 行家匯 的精彩文章:

Node中的UDP客戶端服務應用
Node通過UDP傳輸文件
Node創建TCP服務端和客戶端的方法
定義模版消息發送方法類庫的編寫及POST數據發送
Node如何讀取配置文件

TAG:行家匯 |

您可能感興趣

原生Dao開發方法需要程序員編寫Dao介面和Dao實現類
Android免Root許可權Hook系統函數修改程序運行時內存指令邏輯
這屆 Python 程序員,很行!
Android簡單的布局和運行程序
iHeartMedia宣布破產 應用程序正常運行
Windows下Python用管理員執行命令或者程序
一些很棒的Python應用程序
Oculus的移動應用程序現在支持Rift
如何在 Mac 下完美的運行 Windows 應用程序
如何在Windows系統中設置Python程序定時運行
三種方式教你運行Python程序
Android P將切斷後台應用程序的相機訪問權
Linux操作系統的應用程序如何跟Linux內核進行交互
Python程序員常用速查表集合
AdBlock Plus廣告過濾插件漏洞可被執行惡意程序代碼
一大批前端程序員又要失業了,阿里 imgcook體驗版發布!
開始使用 Go For It 吧,一個靈活的待辦事項列表程序
MicroD推出3D室內規劃增強現實應用程序
程序員正在拋棄 Facebook
感謝第三方解決方案Android應用程序可以運行在Windows手機當中