在 node.js 中执行时子进程突然退出
Child Process exits abruptly while executing in node.js
所以我一直在做一个项目,它需要我将办公文件转换为 PDF 并随后转换为图像。我已经将所有内容编写并集成到一个 node.js 脚本中,但由于某种原因,该脚本一直绕过同步子进程创建。这是代码:
down.download(parsed_url);
var f_name=obj.doc;
var ext=f_name.slice(f_name.length-4);
var w_path="C:\Users\Akshay\Desktop\conv_Scripts\word_pdf.ps1";
var e_path="C:\Users\Akshay\Desktop\conv_Scripts\excel_pdf.ps1";
var p_path="C:\Users\Akshay\Desktop\conv_Scripts\power_pdf.ps1";
var file_name=f_name.slice(0,f_name.length-5);
console.log(ext);
console.log(f_name);
console.log(file_name);
if(ext==="docx"){
word.wordpdf(w_path);
}
else if(ext==="xlsx"){
excel.excelpdf(e_path);}
else if(ext==="pptx"){
ppt.pptpdf(p_path);
console.log("Done converting to PD");
}
else if(ext==".pdf"){
img.img(f_name);
}
else{
console.log("Can't convert to PDF");
}
crawlpdf.crawlpdf(file_name,function(collect){
collect.forEach(function(col){
img.img(col);
console.log('Done!');
});
wordpdf、excelpdf 和 pptpdf 函数的结构相同。我会在这里写下wordpdf模块的代码:
var spawn=require('child_process').spawnSync,
child;
exports.wordpdf=function(filepath){
child=spawn("powershell.exe",[filepath]);
};
问题是,当我执行脚本时,它显示 "Done converting to PD"(因为下载的文件是 ppt),但我没有找到下载文件的任何 pdf。ps1 路径中的脚本已经过测试,没有问题。如果你能阐明一些问题,那对我来说真的是一个巨大的帮助。
谢谢。
好的,如果其他人遇到与此相同的问题,这里是对错误原因的解释:
来自 RabbitMQ 消息队列的消息 small.Hence 当消息到达时它会被迅速消耗,导致代码中的竞争条件。为了获得更好和更准确的性能,请尝试解析消息并将其写入文件,然后使用异步模块执行必要的步骤。
所以我一直在做一个项目,它需要我将办公文件转换为 PDF 并随后转换为图像。我已经将所有内容编写并集成到一个 node.js 脚本中,但由于某种原因,该脚本一直绕过同步子进程创建。这是代码:
down.download(parsed_url);
var f_name=obj.doc;
var ext=f_name.slice(f_name.length-4);
var w_path="C:\Users\Akshay\Desktop\conv_Scripts\word_pdf.ps1";
var e_path="C:\Users\Akshay\Desktop\conv_Scripts\excel_pdf.ps1";
var p_path="C:\Users\Akshay\Desktop\conv_Scripts\power_pdf.ps1";
var file_name=f_name.slice(0,f_name.length-5);
console.log(ext);
console.log(f_name);
console.log(file_name);
if(ext==="docx"){
word.wordpdf(w_path);
}
else if(ext==="xlsx"){
excel.excelpdf(e_path);}
else if(ext==="pptx"){
ppt.pptpdf(p_path);
console.log("Done converting to PD");
}
else if(ext==".pdf"){
img.img(f_name);
}
else{
console.log("Can't convert to PDF");
}
crawlpdf.crawlpdf(file_name,function(collect){
collect.forEach(function(col){
img.img(col);
console.log('Done!');
});
wordpdf、excelpdf 和 pptpdf 函数的结构相同。我会在这里写下wordpdf模块的代码:
var spawn=require('child_process').spawnSync,
child;
exports.wordpdf=function(filepath){
child=spawn("powershell.exe",[filepath]);
};
问题是,当我执行脚本时,它显示 "Done converting to PD"(因为下载的文件是 ppt),但我没有找到下载文件的任何 pdf。ps1 路径中的脚本已经过测试,没有问题。如果你能阐明一些问题,那对我来说真的是一个巨大的帮助。
谢谢。
好的,如果其他人遇到与此相同的问题,这里是对错误原因的解释:
来自 RabbitMQ 消息队列的消息 small.Hence 当消息到达时它会被迅速消耗,导致代码中的竞争条件。为了获得更好和更准确的性能,请尝试解析消息并将其写入文件,然后使用异步模块执行必要的步骤。