Dino Geek, cerca di aiutarti

Come utilizzare il modulo Child Process in Node.js?


Il modulo “child\_process” in Node.js è utilizzato per creare nuovi processi. Questi processi figli possono comunicare con il processo principale attraverso un canale di comunicazione che consente loro di passare messaggi avanti e indietro.

Eccone un esempio di come utilizzare il modulo “child\_process” attraverso le sue funzioni `spawn()`, `exec()`, `execFile()` e `fork()`:

1. `spawn()`: questa funzione lancia un nuovo processo con un comando dato.

```
const { spawn } = require(‘child_process’);
const child = spawn(‘ls’, [‘-lh’, ‘/usr’]);

child.stdout.on(‘data’, (data) => { console.log(`stdout: ${data}`);
});

child.stderr.on(‘data’, (data) => { console.error(`stderr: ${data}`);
});

child.on(‘close’, (code) => { console.log(`processo figlio esce con codice ${code}`);
});
```

1. `exec()`: questa funzione funziona in modo simile a spawn(), ma accetta una stringa di comando invece di parametri separati. Questa funzione restituisce l’intero buffer di dati alla chiamata di callback.

```
const { exec } = require(‘child_process’);
exec(‘ls -lh /usr’, (error, stdout, stderr) => { if (error) { console.error(`exec error: ${error}`); return; }

console.log(`stdout: ${stdout}`); console.error(`stderr: ${stderr}`); }); ```

1. `execFile()`: questa funzione è simile a exec(), ma lancia direttamente il file di comando fornito che è facile da usare se si sta eseguendo solo un file eseguibile.

```
const { execFile } = require(‘child_process’);
const child = execFile(‘path-to-your-file’, [‘arg1’, ‘arg2’], (error, stdout, stderr) => { if (error) { throw error; } console.log(stdout);
});
```

1. `fork()`: questa funzione è una variante speciale della spawn() che crea un nuovo processo Node.js. Restituisce un oggetto con un canale di comunicazione integrato per passare i messaggi tra processo genitore e figlio.

```
const { fork } = require(‘child_process’);

const child = fork(‘./child.js’);

child.on(‘message’, (msg) => { console.log(‘Messaggio dal figlio’, msg);
});

child.send({ hello: ‘world’ });
```

Nell’ultimo esempio, il file child.js potrebbe somigliare a questo:

```
process.on(‘message’, (msg) => { console.log(‘Messaggio dal padre:’, msg);
});

let counter = 0;

setInterval(() => { process.send({ counter: counter++ });
}, 1000);
```

Ricorda che la creazione di processi figli è piuttosto costosa in termini di risorse, quindi l’uso improprio di queste API può portare a problemi di prestazioni.


Genera semplicemente articoli per ottimizzare il tuo SEO
Genera semplicemente articoli per ottimizzare il tuo SEO





DinoGeek offre articoli semplici su tecnologie complesse

Vuoi essere citato in questo articolo? È molto semplice, contattaci a dino@eiki.fr

CSS | NodeJS | DNS | DMARC | MAPI | NNTP | htaccess | PHP | HTTPS | Drupal | WEB3 | LLM | Wordpress | TLD | Nome dominio | IMAP | TCP | NFT | MariaDB | FTP | Zigbee | NMAP | SNMP | SEO | E-Mail | LXC | HTTP | MangoDB | SFTP | RAG | SSH | HTML | ChatGPT API | OSPF | JavaScript | Docker | OpenVZ | ChatGPT | VPS | ZIMBRA | SPF | UDP | Joomla | IPV6 | BGP | Django | Reactjs | DKIM | VMWare | RSYNC | Python | TFTP | Webdav | FAAS | Apache | IPV4 | LDAP | POP3 | SMTP

| Whispers of love (API) | Déclaration d'Amour |






Avviso Legale / Condizioni Generali di Utilizzo