Node.js child_process.execFile()无法与自己的.exe合作

时间:2018-12-18 11:07:49

标签: node.js execfile

我只是试图深入研究Node.js,并且正在测试一些基本功能,这些功能对完成我的项目很有帮助。其中之一是执行我用C ++编写的一个小的.exe文件,该文件处理来自文本文件的数据。我发现child_process.execFile可能是实现此目的的最佳方法。因此,我编写了一个小脚本来启动服务器并调用可执行文件。对于第一个测试,我将路径设置为“第三方” -.exe,并且运行正常(程序已按预期启动)。但是,当我以自己的.exe为目标时,尽管路径正确(我用fs.access进行了核对),但什么也没有发生。只需双击.exe即可手动执行文件,也可以正常工作,并相应地处理txt文件。所以现在我想知道是否得到某事。根本上是错误的,例如.exe是否需要满足一定的条件才能通过execFile执行?

这是我的代码:

var http = require('http');
const fs = require('fs');

var server = http.createServer(function(req, res){
    console.log('Request was made: ' + req.url);
    res.writeHead(200, {'Content-Type': 'text/plain'});
});

server.listen(3000, '127.0.0.1');
console.log('Listening to port 3000');

var executablePath = "C:/path/to/file.exe";

fs.access(executablePath, fs.constants.F_OK, (err) => {
      console.log(`${executablePath} ${err ? 'does not 
      exist':'exists'}`);
});

const execFile = require('child_process').execFile;
const child = execFile(executablePath, (error, stdout, stderr) => {
    if (error) {
        console.error('stderr', stderr);
        throw error;
    }
    console.log('stdout', stdout);
});

控制台输出为“ ... C:/path/to/file.exe存在”。 execFile不会引发任何错误。 感谢您的帮助,并为我的菜鸟语言道歉!

0 个答案:

没有答案