我尝试从nodejs执行CC:
// already tried exec, spawn
process.execFile('java', [
'-jar', 'CC-path', '-js', 'js-path', 'other-options'
],
(error, stdout) => {
if (error != null) {
throw error // if there is any errors then will showed in terminal
}
console.log(stdout.toString()) // but stdout always empty when no errors exist
}
)
// I have tested by manual running the command in terminal and got output:
// "...many lines before"
// 0 error(s), 10 warning(s), 74.2% typed
我怎样才能获得所有" Nodejs exec"输出就像我在终端手动输入命令一样?
答案 0 :(得分:1)
.execFile()
接受一个回调,获得三个参数(err, stdout, stderr)
。您应该记录所有三个以查看发生了什么。我的猜测是stderr
上有一些你忽略的东西。如果有问题,您也无法登录err
。
process.execFile('java', [
'-jar', 'CC-path', '-js', 'js-path', 'other-options'
], (error, stdout, stderr) => {
if (error) {
console.log(error);
return;
}
console.log("stdout: ", stdout);
console.log("stderr: ", stderr);
}
此外,您的throw error
可能无用,因为在常规异步回调中执行throw
只会引入child_process库的内容,而不是任何可以捕获它的地方。