我尝试使用Node JS child_process打开文件,如下所示
var child_process =require('child_process');
var spawn = child_process.spawn;
var exePath='<exe's path>'
var filePath='<file path>'
var childProcess = spawn(exePath, [filePath]);
childProcess.stdout.on('data', (res) => {
console.log('in spawn data');
console.log(res);
})
childProcess.stderr.on('data', (err) => {
throw err;
});
这里的问题是我的文件正在指定的exe中正确打开..但回调永远不会被调用...我猜测它是因为在打开文件后exe没有返回任何输出它只是打开文件。
此外,如果文件名中有任何错误,则错误回调也不会触发
问题
答案 0 :(得分:0)
正如@JuanPicado在评论中所说,要检查子进程是否正确生成,可以检查其PID。这是一个示例:
import child_process from 'child_process';
const subprocess = child_process.spawn("grep");
if(typeof subprocess.pid !== "number")
throw new ErrorError: Failed to spawn subprocess.");
console.log("Spawned subprocess correctly!");
根据我的观察,如果未正确产生子进程,则subprocess.pid
将是undefined
。通过更改进程名称以包含拼写错误进行测试,以进行测试。