node.js:来自child_process的console.log

时间:2015-01-08 14:59:14

标签: node.js asynchronous callback console

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

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

            return cb(err);
        });

stdout正确打印,但stderr print语句未执行。 (如果我注释掉stdout打印,则正确打印stderr)。那么一些缓冲问题呢?如何让它们正确打印?

我是异步编程的新手,很抱歉,如果这个问题太基础了。

1 个答案:

答案 0 :(得分:1)

你没有回来试过吗?以下代码适用于我。 aa引发错误,我在stderr上有一些东西,如果我只使用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);
}