fire fire - 11 months ago 50
Node.js Question

Spawn on Node JS (Windows Server 2012)

When I run this through Node:

var spawn = require('child_process').spawn;

ls = spawn('ls', ['C:\\Users']);

ls.on('error', function (err) {
console.log('ls error', err);

ls.stdout.on('data', function (data) {
console.log('stdout: ' + data);

ls.stderr.on('data', function (data) {
console.log('stderr: ' + data);

ls.on('close', function (code) {
console.log('child process exited with code ' + code);

I get the following error:

ls error { [Error: spawn ENOENT] code: 'ENOENT', errno: 'ENOENT', syscall: 'spawn' }
child process exited with code -1

On Windows Server 2012. Any ideas?

Answer Source

(Firstly, does ls actually exist on windows?)

I had a similar issue spawning child processes a little while back and it took me ages to figure out the correct way of doing it.

Here's some example code:

var spawn = require('child_process').spawn;
var cp = spawn(process.env.comspec, ['/c', 'command', '-arg1', '-arg2']);

cp.stdout.on("data", function(data) {

cp.stderr.on("data", function(data) {

Have a look at this ticket for an explanation of the issue: