代码之家  ›  专栏  ›  技术社区  ›  Ankit Kulshrestha

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

  •  0
  • Ankit Kulshrestha  · 技术社区  · 9 年前

    所以我一直在做一个项目,它需要我将办公室文件转换成PDF,然后再转换成图像。我已将所有内容编写并集成到一个节点中。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 回复  |  直到 9 年前
        1
  •  0
  •   Ankit Kulshrestha    9 年前

    好吧,如果其他人遇到了与此相同的问题,下面是错误的解释:

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