
Tra le tante funzionalità che possiamo sfruttare in Node.js, c’è la possibilità di attivare processi nel sistema operativo. Per farlo abbiamo bisogno del modulo child_process di cui vediamo un rapidissimo esempio:
var exec = require('child_process').exec; exec('ls -la', function(error, stdout, stderr) { console.log(stdout); });
Una volta importata la funzionalità, dobbiamo semplicemente decidere quale comando eseguire (in questo caso, a titolo di esempio, una lista di file e cartelle) e la funzione che verrà invocata al termine dell’esecuzione: dai parametri in essa contenuti potremo leggere l’output in stdout mentre, dagli altri due, avere informazioni sugli eventuali errori occorsi.
Una verifica tramite if sarà sufficiente a constatare se si sia verificato un errore:
if (error !== null) { // gestione dell'errore }
Alternativamente, si può gestire l’esito dell’esecuzione nella maniera seguente:
var exec = require('child_process').exec; var child = exec('ls -la'); child.stdout.on('data', function(data) { // gestione dell'output }); child.stderr.on('data', function(data) { // gestione dell'errore }); child.on('close', function(code) { // codice di chiusura restituito al sistema operativo });
pianificando reazioni agli eventi sia in caso di corretta esecuzione sia in caso di errore.
Superfluo elencare le possibilità che funzionalità del genere offrono nella realizzazione di script, soprattutto in un ambiente come Node.js dotatissimo di vie di comunicazione da e verso l’esterno dell’applicazione.
Alla prossima!
No Responses to “Accedere al filesystem con Node.js”