【发布时间】:2017-01-30 21:16:33
【问题描述】:
这段代码:
const spawn = require('child_process').spawn;
const convert = spawn('convert', ['nda.pdf', 'nda.jpg']);
convert.stdout.on('data', function (data) {
console.log('stdout: ' + data.toString());
});
convert.stderr.on('data', function (data) {
console.log('stderr: ' + data.toString());
});
convert.on('exit', function (code) {
console.log('child process exited with code ' + code.toString());
});
显示此输出:
stderr: /tmp/magick-27144xZVKt6FGxrJR1 PNG 2409x3420 2409x3420+0+0 8-bit sRGB 1.027MB
stderr: 0.150u 0:00.149
stderr: /tmp/magick-27144xZVKt6FGxrJR2 PNG 2409x3423 2409x3423+0+0 8-bit sRGB 4.237MB 0.250u 0:00.260
stderr: /tmp/magick-27144xZVKt6FGxrJR3 PNG 2409x3423 2409x3423+0+0 8-bit sRGB 3.911MB 0.240u 0:00.239
stderr: /tmp/magick-27144xZVKt6FGxrJR4 PNG 2409x3417 2409x3417+0+0 8-bit sRGB 1.241MB 0.190u 0:00.190
...
...
...
stderr: nda.pdf=>Palette-3.jpg[3] PNG 2409x3417 2409x3417+0+0 16-bit sRGB 759KB 11.210u 0:02.369
child process exited with code 0
所以它似乎将输出重定向到stderr而不是stdout,执行命令也一切正常。
当我使用 child_process.exec() 时也会发生同样的情况。
为什么会这样?
【问题讨论】:
-
我也有同样的问题。完全疯了。
标签: node.js child-process