npm open在服务器中部署时不起作用?

时间:2019-07-17 06:09:15

标签: node.js npm

我有一个nodejs代码,在某些时候它使用一个新标签来显示结果。我得到npm-open,它在浏览器的一个新标签中显示我的结果,但是当我将其部署在linux服务器中时,它既不打开新标签也不抛出任何错误?


open( req.protocol + '://' + req.get('host')+"/view-document/?logos="+ logos+"&comp_name="+result_3[0].name +"&emp_name="+empname+"&start_date="+sdates+"&end_date="+edates+"&position="+designation+"&template=template1"+"&emp_id="+emp_id+"&issue_date="+issue_date+"&title="+title, function (err) {
                if ( err ) {
                    res.redirect("/view-document/?logos=" + logos+"&comp_name="+result_3[0].name +"&emp_name="+empname+"&start_date="+sdates+"&end_date="+edates+"&position="+designation+"&template=template1"+"&emp_id="+emp_id+"&issue_date="+issue_date+"&title="+title);
                    return;
                }    
            });

1 个答案:

答案 0 :(得分:2)

怎么可能?

open命令是一种使脚本与正在运行的OS交互的方法,可以告诉脚本打开URL,图像等。如果在本地计算机上运行脚本,这很好并按预期工作。

如果您在服务器上运行脚本,则它无法将其请求传达给本地计算机。考虑一下–随机的网页/服务器是否应具有与客户端计算机上的操作系统进行交互的能力?

要进行类似的工作,您需要将脚本分为两部分:

  • 应该驻留在服务器上的部件
  • 将与服务器通信的实用程序脚本,并在需要时运行open命令