Я сделал приложение node.js
, чтобы перечислить все .txt
файлы из каталога рекурсивно и, для каждого из них, сделать некоторые вещи.
Здесь my app.js:
var spawn = require('child_process').spawn,
dir = spawn('dir', ['*.txt', '/b']);
dir.stdout.on('data', function (data) {
//do some stuff with each stdout line...
console.log('stdout: ' + data);
});
dir.stderr.on('data', function (data) {
//throw errors
console.log('stderr: ' + data);
});
dir.on('close', function (code) {
console.log('child process exited with code ' + code);
});
Когда я запускаю node app.js
через консоль, я получаю сообщение об ошибке ниже:
events.js:72
throw er; // Unhandled 'error' event
^
Error: spawn ENOENT
at errnoException (child_process.js:980:11)
at Process.ChildProcess._handle.onexit (child_process.js:771:34)
Я использую node v0.10.13
в среде win32
.
Я делаю этот путь (spawn), потому что я хочу обрабатывать stdout
по строкам (метод exec выделяет целую stdout
как одну строку).
* ОБНОВЛЕНИЕ *
Кстати, использование
spawn
дляchild_process
не гарантирует, что вывод дляcmd dir
будет строковым. Я также создал вопрос для этого.