成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Node模塊--child_process

ormsf / 3341人閱讀

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

1.說(shuō)明

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);
});

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

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

回調(diào)中的第一個(gè)參數(shù):命令執(zhí)行錯(cuò)誤會(huì)有值,否則為null
回調(diào)中的第二個(gè)參數(shù):子進(jìn)程的正常輸出內(nèi)容
回調(diào)中的第三個(gè)參數(shù):子進(jìn)程執(zhí)行錯(cuò)誤的輸出
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}`);
});

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

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

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

2-3 兩者對(duì)比

相同點(diǎn):

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

不同點(diǎn):

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

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

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

spawn 的輸出內(nèi)容是通過(guò)流的形式進(jìn)行輸出的,沒(méi)有分配空間,不會(huì)報(bào)錯(cuò)

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/89486.html

相關(guān)文章

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

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

    JinB 評(píng)論0 收藏0
  • Node.js child_process模塊解讀

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

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

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

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

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

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

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

    Harpsichord1207 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

ormsf

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<