child_process has stdin and stdout for input and output
child_process.exec(command, [options], callback)
execute a command
default options:
var options = { encoding: 'utf8',
timeout: 0,
maxBuffer: 200 * 1024,
killSignal: 'SIGTERM',
setsid: false,
cwd: null,
env: null };
var cp = require( 'child_process');
cp.exec( 'ls -l', function( e, stdout, stderr ){
if( !e ){
console.log( stdout );
}
});
spawn is more general purpose, it require you to do stdin stdout callback yourself.
simple example to use stdin and stdout to list files and foulders:
//create child process for terminal
var terminal = require('child_process').spawn('bash');
//when terminal receive data, print it to console
terminal.stdout.on('data', function (data) {
console.log('stdout: ' + data);
});
//when terminal exit, print code to notify user
terminal.on('exit', function (code) {
console.log('child process exited with code ' + code);
});
//write data to terminal through stdin
setTimeout(function() {
console.log('Sending stdin to terminal');
terminal.stdin.write('ls -lah');
terminal.stdin.end();
}, 1000);