亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Node模塊--child_process

ormsf / 3434人閱讀

摘要:說明模塊是的原始模塊主要作用執(zhí)行命令行命令該模塊的功能主要由函數(shù)提供區(qū)分和執(zhí)行命令第一個參數(shù)是將要執(zhí)行的命令,命令之間的參數(shù)使用空格分開第二個參數(shù)是回調(diào)函數(shù),有三個參數(shù)回調(diào)中的第一個參數(shù)命令執(zhí)行錯誤會有值,否則為回調(diào)中的第二個參數(shù)子進(jìn)程

1.說明

child_process 模塊是 Node.js 的原始模塊:

主要作用:執(zhí)行命令行命令

該模塊的功能主要由 child_process.spawn() 函數(shù)提供

2.區(qū)分exec和spawn 2-1 exec執(zhí)行命令
const {
  exec
} = require("child_process");
exec("ls -la /usr", (error, stdout, stderr) => {
  console.log(error);
  console.log(stdout);
  console.log(stderr);
});

第一個參數(shù)是將要執(zhí)行的命令,命令之間的參數(shù)使用空格分開

第二個參數(shù)是回調(diào)函數(shù),有三個參數(shù)

回調(diào)中的第一個參數(shù):命令執(zhí)行錯誤會有值,否則為null
回調(diào)中的第二個參數(shù):子進(jìn)程的正常輸出內(nèi)容
回調(diào)中的第三個參數(shù):子進(jìn)程執(zhí)行錯誤的輸出
2-2 spawn命令
const {
  spawn
} = require("child_process");

const ls = spawn("ls", ["-la", "/usr"]);

ls.stdout.on("data", (data) => {
  console.log(`stdout: ${data}`);
});

ls.stderr.on("data", (data) => {
  console.log(`stderr: ${data}`);
});

ls.on("close", (code) => {
  console.log(`子進(jìn)程退出碼:${code}`);
});

第一個參數(shù)是命令

第二個參數(shù)是一個數(shù)組,數(shù)組中的每一個元素是執(zhí)行命令需要的參數(shù)

需要特別注意的是,需要獲取執(zhí)行的內(nèi)容需要通過流的形式來進(jìn)行輸出

2-3 兩者對比

相同點:

都可以用來執(zhí)行命令行命令

不同點:

exec 用來執(zhí)行命令,命令和命令后跟的參數(shù)是寫在一個字符串中,作為函數(shù)的第一個參數(shù)

spawn 用來執(zhí)行命令,命令和命令后跟的參數(shù)是分開寫的

exec 的輸出內(nèi)容是在回調(diào)中輸出的,一次性分配 200K 大小的內(nèi)存空間,如果超出這個大小會報錯

spawn 的輸出內(nèi)容是通過流的形式進(jìn)行輸出的,沒有分配空間,不會報錯

總結(jié):spawn 比 exec 使用范圍要廣,因此,能使用 spawn 的盡量使用 spawn。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/89486.html

相關(guān)文章

  • nodejs中的子進(jìn)程,深入解析child_process模塊和cluster模塊

    摘要:嚴(yán)格來說,并不是單線程的。其他異步和事件驅(qū)動相關(guān)的線程通過來實現(xiàn)內(nèi)部的線程池和線程調(diào)度。線程是最小的進(jìn)程,因此也是單進(jìn)程的。子進(jìn)程中執(zhí)行的是非程序,提供一組參數(shù)后,執(zhí)行的結(jié)果以回調(diào)的形式返回。在子進(jìn)程中通過和的機(jī)制來接收和發(fā)送消息。 ??node遵循的是單線程單進(jìn)程的模式,node的單線程是指js的引擎只有一個實例,且在nodejs的主線程中執(zhí)行,同時node以事件驅(qū)動的方式處理IO...

    JinB 評論0 收藏0
  • Node.js child_process模塊解讀

    摘要:而且方式創(chuàng)建的子進(jìn)程與父進(jìn)程之間建立了通信管道,因此子進(jìn)程和父進(jìn)程之間可以通過的方式發(fā)送消息。與事件的回調(diào)函數(shù)有兩個參數(shù)和,代碼子進(jìn)程最終的退出碼,如果子進(jìn)程是由于接收到信號終止的話,會記錄子進(jìn)程接受的值。 在介紹child_process模塊之前,先來看一個下面的代碼。 const http = require(http); const longComputation = () =>...

    baiy 評論0 收藏0
  • nodejs之process進(jìn)程小記

    摘要:因為進(jìn)程退出之后將不再執(zhí)行事件循環(huán),所有只有那些沒有回調(diào)函數(shù)的代碼才會被執(zhí)行。此外,創(chuàng)建的回調(diào)函數(shù)具有隔離性,他們之間不會相互影響。我們來看的一個簡單例子,他創(chuàng)建了一個子進(jìn)程,第一個參數(shù)是一個命令,第二個參數(shù)是回調(diào)函數(shù),處理返回結(jié)果。 雖然node對操作系統(tǒng)做了很多抽象的工作,但是你還是可以直接和他交互,比如和系統(tǒng)中已經(jīng)存在的進(jìn)程進(jìn)行交互,創(chuàng)建工作子進(jìn)程。node是一個用于事件循環(huán)的線...

    Binguner 評論0 收藏0
  • 通過源碼解析 Node.js 中進(jìn)程間通信中的 socket 句柄傳遞

    摘要:子進(jìn)程使用反序列化消息字符串為消息對象。在調(diào)用這類方法時,遍歷列表中的實例發(fā)送內(nèi)部消息,子進(jìn)程列表中的對應(yīng)項收到內(nèi)部消息并處理返回,父進(jìn)程中再結(jié)合返回結(jié)果和對應(yīng)著這個類實例維護(hù)的信息,保證功能的正確性。 在 Node.js 中,當(dāng)我們使用 child_process 模塊創(chuàng)建子進(jìn)程后,會返回一個 ChildProcess 類的實例,通過調(diào)用 ChildProcess#send(mess...

    HackerShell 評論0 收藏0
  • 深入理解Node.js 進(jìn)程與線程(8000長文徹底搞懂)

    摘要:在單核系統(tǒng)之上我們采用單進(jìn)程單線程的模式來開發(fā)。由進(jìn)程來管理所有的子進(jìn)程,主進(jìn)程不負(fù)責(zé)具體的任務(wù)處理,主要工作是負(fù)責(zé)調(diào)度和管理。模塊與模塊總結(jié)無論是模塊還是模塊,為了解決實例單線程運行,無法利用多核的問題而出現(xiàn)的。 前言 進(jìn)程與線程是一個程序員的必知概念,面試經(jīng)常被問及,但是一些文章內(nèi)容只是講講理論知識,可能一些小伙伴并沒有真的理解,在實際開發(fā)中應(yīng)用也比較少。本篇文章除了介紹概念,通過...

    Harpsichord1207 評論0 收藏0

發(fā)表評論

0條評論

ormsf

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<