在我的 Node.js (v0.10.9) 代码中,我试图检测两种情况:
- 安装了一个外部工具(点) - 在这种情况下,我想将一些数据发送到创建进程的标准输入
- 未安装外部工具 - 在这种情况下,我想显示警告并且我不想发送任何东西来处理'stdin
我的问题是,当且仅当进程成功生成(即标准输入已准备好写入)时,我不知道如何将数据发送到孩子的标准输入。如果安装了dot ,以下代码可以正常工作,否则它会尝试将数据发送给孩子,尽管孩子没有产生。
var childProcess = require('child_process');
var child = childProcess.spawn('dot');
child.on('error', function (err) {
console.error('Failed to start child process: ' + err.message);
});
child.stdin.on('error', function(err) {
console.error('Working with child.stdin failed: ' + err.message);
});
// I want to execute following lines only if child process was spawned correctly
child.stdin.write('data');
child.stdin.end();
我需要这样的东西
child.on('successful_spawn', function () {
child.stdin.write('data');
child.stdin.end();
});