Javascript 通过nodejs运行可执行文件

Javascript 通过nodejs运行可执行文件,javascript,node.js,npm,electron,Javascript,Node.js,Npm,Electron,我想使用nodeJS运行一个可执行文件。下面是我的尝试 我使用electronJS作为Gui,我使用electron pacakger编译JS文件 我的目标是从电子压缩的可执行文件中调用EXE,以便触发我的服务器 我的尝试: main.js 第二次尝试: 我参考了stack中的一些QA,从中我得到了如下解决方案: var child = require('child_process').execFile; var executablePath = "C:\\datajr\\datajr.

我想使用nodeJS运行一个可执行文件。下面是我的尝试

  • 我使用electronJS作为Gui,我使用electron pacakger编译JS文件
  • 我的目标是从电子压缩的可执行文件中调用EXE,以便触发我的服务器
我的尝试:

main.js

第二次尝试:

我参考了stack中的一些QA,从中我得到了如下解决方案:

var child = require('child_process').execFile;
  var executablePath = "C:\\datajr\\datajr.exe";

   child(executablePath, function(err, data) {
        if(err){
           console.error(err);
           return;
        }

    console.log(data.toString());
});
  • 当我触发命令时,
    npm start
    my
    electron JS
    以及
    datajr.exe
    必须执行。但不幸的是,它没有发生

来自npm文档:

npm start
运行在包的“scripts”对象(在您的
package.json
文件中)的“start”属性中指定的任意命令。如果在“scripts”对象上没有指定“start”属性,它将运行node server.js

因此,如果项目目录中没有
package.json
,或者
scripts
start
属性中没有
main.js
npm start
将无法工作

如果您想了解更多信息,请查看npm文档:

对于
npm启动


对于npm文档中的
package.json
文件:

npm start
运行在包的“scripts”对象(在您的
package.json
文件中)的“start”属性中指定的任意命令。如果在“scripts”对象上没有指定“start”属性,它将运行node server.js

因此,如果项目目录中没有
package.json
,或者
scripts
start
属性中没有
main.js
npm start
将无法工作

如果您想了解更多信息,请查看npm文档:

对于
npm启动


对于
package.json
文件:

我假设您希望同时运行electron应用程序和另一个可执行文件,在这种情况下,您可以使用。 假设您可以直接从命令行执行可执行文件,如
datajr
,那么您可以通过添加以下内容来修改您的
package.json

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "concurrently \"datajr\" \"electron main.js\" ",
  }

现在
npm start
启动electron应用程序和可执行文件。通过这种方式,您可以克服从
main.js

中执行文件的麻烦,我想您希望同时运行electron应用程序和另一个可执行文件,在这种情况下,您可以使用。 假设您可以直接从命令行执行可执行文件,如
datajr
,那么您可以通过添加以下内容来修改您的
package.json

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "concurrently \"datajr\" \"electron main.js\" ",
  }

现在
npm start
启动electron应用程序和可执行文件。通过这种方式,您可以克服从
main.js

中执行文件的麻烦。如果您使用
节点yourscript.js
进行测试,它是否有效?只有在我发出命令npm start only@Frederik.L时,它才会启动。因为我已经集成了电子快速启动。快速启动[1]如果您使用
节点yourscript.js进行测试,它是否有效?只有在我发出命令npm start only@Frederik.L时,它才会启动。因为我已经集成了电子快速启动。quickstart[1]我的文件夹中有package.json,我已经在package.json@Álvaro tihanyi中指定了您建议的内容。我想让您从mani、js运行一个外部exe,知道吗@Álvaro TihanyiI在我的文件夹中有package.json,我已经在package.json@Álvaro tihanyi中指定了您建议的内容。我想让您从mani,js运行一个外部exe,知道吗@Álvaro TihanyiBut同时使用如何转到路径“c:\datajr\dist\datajr.exe”?windows:
“开始”:“同时”cd/\d c:\\datajr\\dist&&datajr.exe\“\”sleep 2&&electron main.js\”
在给出路径时出错:npm ERR!代码EJSONPARSE npm ERR!无法解析json npm错误!在“…当前”cd/\d C:\\dev\u sky\\core\u…”boom附近解析时,位置141处的JSON中出现意外标记d:“开始”:“同时”cd\/d C:\\datajr\\dist&&datajr.exe \“\'sleep 2&&electron main.js\”让我们来看看。这将起作用,
“开始”:“同时”cd\/d C:\\datajr\\dist&&datajr.exe\'electron.\”“
但同时使用如何转到路径“c:\datajr\dist\datajr.exe”?windows:
“开始”:“并发\”cd/\d c:\\datajr\\dist&&datajr.exe \”“sleep 2&&electron main.js\”
在我给出路径时出错:npm ERR!代码EJSONPARSE npm ERR!无法解析json npm错误!在“…当前”cd/\d C:\\dev\u sky\\core\u…”boom附近解析时,位置141处的JSON中出现意外标记d:“开始”:“同时”cd\/d C:\\datajr\\dist&&datajr.exe \“\'sleep 2&&electron main.js\”让我们来看看。这将起作用,
“开始”:“同时”cd\/d C:\\datajr\\dist&&datajr.exe\'electron.\”“