ulivz / node-fragment

useful fragments for node.js
2 stars 0 forks source link

child_process #10

Open ulivz opened 6 years ago

ulivz commented 6 years ago

Summary

调用spawn, command时返回的是都是 ChildProcess 实例,而 ChildProcess 类继承自 EventEmitter

spawn

var spawn = require('child_process').spawn,
    free  = spawn('free', ['-m']); 

// 捕获标准输出并将其打印到控制台
free.stdout.on('data', function (data) {
    console.log('标准输出:\n' + data);
});

// 捕获标准错误输出并将其打印到控制台
free.stderr.on('data', function (data) {
    console.log('标准错误输出:\n' + data);
});

// 注册子进程关闭事件
free.on('exit', function (code, signal) {
    console.log('子进程已退出,代码:' + code);
});
ulivz commented 6 years ago

exec

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

// 成功的例子
exec('ls -al', function(error, stdout, stderr){
    if(error) {
        console.error('error: ' + error);
        return;
    }
    console.log('stdout: ' + stdout);
    console.log('stderr: ' + typeof stderr);
});

// 失败的例子
exec('ls hello.txt', function(error, stdout, stderr){
    if(error) {
        console.error('error: ' + error);
        return;
    }
    console.log('stdout: ' + stdout);
    console.log('stderr: ' + stderr);
});