Node позволяет запустить системную команду в рамках нового дочернего процесса и прослушивать его ввод-вывод. Дочерние процессы, в которых активизируются системные Unix-команды, не работают в Windows и наоборот.
Модуль child-process, входящий в Node.js, позволяет работать с дочерними процессами: порождать их, передавать и получать информацию в асинхронном режиме, управлять работой потока.
Для создания дочерних процессов, можно воспользоваться четырмя различными технологиями, но чаще всего пользуются методом spawn. Он запускает команду в новом процессе, передавая ей необходимо количество параметров.
Например, мы можем выполнить консольную команду dir, которая выведет содержимое текущего каталога:
var cmd = require('child_process').spawn('cmd', ['/c', 'dir\n']); cmd.stdout.on('data', function(data){ console.log('stdout: ' + data); }); cmd.on('exit', function(code){ console.log('child' + code); })
Ключ /c, переданный cmd.exe в качестве первого аргумента, заставляет выполнить команду, а затем завершить процесс. Без этого ключа приложение не работает. Ключ /k заставит выполнять приложение и оставаться в этом состоянии, не завершив приложение.