在node.js中执行时,子进程突然退出

时间:2015-08-10 07:08:46

标签: node.js synchronous child-process

所以我一直致力于一个项目,它要求我将办公室文件转换为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]);


};

麻烦的是,当我执行脚本时,它显示“完成转换为PD”(因为下载的文件是ppt)但我找不到下载文件的任何pdf。路径中的.ps1脚本已经过测试,没有问题。如果你可以解决一些问题,对我来说真的是一个巨大的帮助。

感谢。

1 个答案:

答案 0 :(得分:0)

好吧,如果有其他人遇到与此问题相同的问题,请点击以下解释:

来自RabbitMQ消息队列的消息很小。当消息到达时它会迅速消耗,导致代码中的竞争条件。为了获得更好和更准确的性能,请尝试解析并将消息写入文件,然后使用异步模块执行必要的步骤。