Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在Linux托管的NodeJ上打开.exe文件_Node.js_Linux_Wine - Fatal编程技术网

Node.js 如何在Linux托管的NodeJ上打开.exe文件

Node.js 如何在Linux托管的NodeJ上打开.exe文件,node.js,linux,wine,Node.js,Linux,Wine,我正试图让我的节点服务器在Linux托管的NODEJS实现上启动一个.exe文件 My.exe位于此处:'/home/username/projects/ProjectName/server/webserver/Project.exe' 当我尝试启动exe时 与: 我收到了一个不喜欢的错误文件 看起来是这样的: { Error: Command failed: /home/username/projects/ProjectName/server/webserver/Project.exe /ho

我正试图让我的节点服务器在Linux托管的NODEJS实现上启动一个.exe文件

My.exe位于此处:
'/home/username/projects/ProjectName/server/webserver/Project.exe'

当我尝试启动exe时

与:

我收到了一个不喜欢的错误文件

看起来是这样的:

{ Error: Command failed: /home/username/projects/ProjectName/server/webserver/Project.exe /home/username/projects/ProjectName/server/webserver/files/31005
/home/username/projects/ProjectName/server/webserver/Project.exe: 1: /home/username/projects/ProjectName/server/webserver/Project.exe: MZ�##���@�#��: not found
/home/username/projects/ProjectName/server/webserver/Project.exe: 2: /home/username/projects/ProjectName/server/webserver/Project.exe: Syntax error: ")" unexpected

    at ChildProcess.exithandler (child_process.js:294:12)
    at ChildProcess.emit (events.js:198:13)
    at maybeClose (internal/child_process.js:982:16)
    at Socket.stream.socket.on (internal/child_process.js:389:11)
    at Socket.emit (events.js:198:13)
    at Pipe._handle.close (net.js:606:12)
  killed: false,
  code: 2,
  signal: null,
  cmd:
   '/home/username/projects/ProjectName/server/webserver/Project.exe /home/username/projects/ProjectName/server/webserver/files/31005' }
当尝试在基于windows的NodeJS上使用windows目录而不是linux运行相同的函数时,该文件可以通过linux上的Wine打开,我的函数调用中是否有需要指示它使用Wine打开.exe的地方?如果是这样,我该怎么做呢?

试试这个

const { exec} = require('child_process');
 exec('wine /home/username/projects/ProjectName/server/webserver/Project.exe /home/username/projects/ProjectName/server/webserver/files/'+date,
function(err, data){

});

我通过以下方式获得了所需的功能:

exec("wine", ["/home/username/projects/ProjectName/server/webserver/Project.exe", date], function(err,data){
}

那么您正在尝试在Linux上运行Windows可执行文件?是吗?没错Rob,你为什么认为Windows二进制文件会在Linux上运行?所以,现在它给了我一个enoint(找不到文件),我想出于某种原因,当它调用函数时,它会留下引号,作为错误日志的一部分显示:cmd:'wine/home/aaronmanill/projects/Pizzabox/pizzaboxwebsite/server/webserver/Pizza_page_server.exe 31528'如果我尝试在终端中使用引号运行它,我会得到相同的错误,但是如果我在终端中不使用引号运行它,它会运行properly@AaronManill试着运行exec(“wine”),看看它是否有效
exec("wine", ["/home/username/projects/ProjectName/server/webserver/Project.exe", date], function(err,data){
}