来自child_process的node.js:console.log

在节点中,我使用child_process运行perl脚本,并且callback中的console.log似乎performance得很奇怪。

child = exec("perl " + validationScript, {cwd: myDir}, function(err, stdout, stderr) { console.log('stdout: ' + stdout); console.log('stderr: ' + stderr); return cb(err); }); 

stdout打印正确,但stderr打印语句不执行。 (如果我注释掉标准输出,则stderr被正确打印)。 那么一些缓冲的问题? 我怎样才能让他们打印正确?

我是新来的asynchronous编程,所以很抱歉,如果这个问题太基本。

你没有回来试过吗? 以下代码适用于我。 一个挑起错误,我有一些错误,如果我只使用ls我会得到没有错误,但一个正确的标准输出。

 child = exec('ls aa', function(err, stdout, stderr) { console.log('stdout: ' + stdout); console.log('stderr: ' + stderr); cb(err); }); function cb(data) { console.log(data); }