如何在 Node.js 中生成子進程
了解如何在 Node.js 中生成子進程
Node.js 提供了child_process
模組,它提供了生成子進程的功能。
引入該模組,並從中獲取spawn
函數:
1 | const { spawn } = require('child\_process') |
然後你可以調用spawn()
函數,並傳遞2個參數。
第一個參數是要運行的命令。
第二個參數是一個包含選項列表的數組。
這是一個例子:
1 | spawn('ls', ['-lh', 'test']) |
在這個例子中,你運行ls
命令,並指定了2個選項:-lh
和test
。這將生成命令ls -lh test
,結果會顯示有關該文件的詳細信息:
1 | -rw-r--r-- 1 flaviocopes staff 6B Sep 25 09:57 test |
spawn()
函數的返回值是ChildProcess
類的實例,用於識別生成的子進程。
這是一個稍微複雜一些的例子,完全可運行。我們在test
文件上設置監聽,每當它發生變化時,就在它上運行ls -lh
命令:
1 | 'use strict' |
還有一個缺少的步驟。我們必須將子進程的輸出 pipe 到主進程,否則我們將無法看到它的任何輸出。
我們可以通過在子進程的stdout
屬性上調用pipe()
方法來實現:
1 | 'use strict' |
tags: [“Node.js”, “child process”, “spawn”]