2016-04-29 39 views
0

我正在制作一个程序,我需要通过node.js执行一些linux命令。在node.js中使用子进程,在完成命令时调用函数

这样

final_command.stdout.on('data', function(data) { 
    fs.writeFile(dates+'.html', data, function(err){ 
     if(err){ 
      return console.error(err); 
     } 
    }); 
}); 

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

final_command.on('exit', function(code) { 

}); 

在这里,我将输出保存到一个HTML文件。

现在运行的程序

我应该把它放在final_command.on部分或我怎么能叫那个角色功能的其他部分?

我知道这是一个蹩脚的问题,但仍然。

回答

0

问题'我应该把它放在final_command.on部分还是我该如何调用该部分的函数?目前尚不清楚。 你的意思是问如何填写final_command?如果是这样,这里是你将如何做到这一点。

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

var command = 'ls'; 
var final_command = spawn(command); 

final_command.stdout.on('data', function childoutdata) { 
    fs.writeFile(dates+'.html', data, function childdatawrite(err){ 
     if(err){ 
      return console.error(err); 
     } 
    }); 
}); 

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

final_command.on('exit', function childexit(code) { 

}); 

如果问题是如何以及何时要继续进行文件操作之后的工作,这取决于: 如果子进程的动作,数据到达和写入文件应该先的一切,那么你应该写你的休息在childdatawrite中的代码。 如果子进程是你所关心的,那么你应该在childexit中编写剩余的代码。 如果其余代码可能与子业务不同步,则可以将代码放在当前块之外。

希望这会有所帮助。

相关问题