Cách sinh ra một quy trình con với Node.js

Tìm hiểu cách tạo ra một quy trình con với Node.js

Node.js cung cấp mộtchild_processmô-đun cung cấp khả năng tạo ra các quy trình con.

Yêu cầu mô-đun và nhận đượcspawnchức năng từ nó:

const { spawn } = require('child_process')

sau đó bạn có thể gọispawn()truyền 2 tham số.

Cáctham số đầu tiênlà lệnh để chạy.

Cáctham số thứ hailà một mảng chứa danh sách các tùy chọn.

Đây là một ví dụ:

spawn('ls', ['-lh', 'test'])

Trong trường hợp này, bạn chạylslệnh với 2 tùy chọn:-lhtest. Điều này dẫn đến lệnhls -lh test, mà (cho rằngtesttệp tồn tại trong cùng thư mục mà bạn chạy lệnh này), dẫn đến các chi tiết về tệp:

-rw-r--r--  1 flaviocopes  staff     6B Sep 25 09:57 test

Kết quả củaspawn()lời gọi hàm là một ví dụ củaChildProcesslớp xác định tiến trình con được tạo ra.

Đây là một ví dụ phức tạp hơn một chút, hoạt động đầy đủ. Chúng tôi xemtestvà bất cứ khi nào nó được thay đổi, chúng tôi chạyls -lhlệnh trên nó:

'use strict'

const fs = require(‘fs’) const { spawn } = require(‘child_process’) const filename = ‘test’

fs.watch(filename, () => { const ls = spawn(‘ls’, [’-lh’, filename]) })

Còn thiếu một thứ. Chúng ta phải chuyển đầu ra từ quy trình con đến quy trình chính, nếu không, chúng tôi sẽ không thấy bất kỳ đầu ra nào từ nó.

Chúng tôi làm như vậy bằng cách gọipipe()phương pháp trênstdoutthuộc tính của tiến trình con:

'use strict'

const fs = require(‘fs’) const { spawn } = require(‘child_process’) const filename = ‘test’

fs.watch(filename, () => { const ls = spawn(‘ls’, [’-lh’, filename]) ls.stdout.pipe(process.stdout) })

Tải xuống miễn phí của tôiSổ tay Node.js


Các hướng dẫn nút khác: