Node.js child_process.execFile () не работает с собственным .exe - PullRequest
0 голосов
/ 18 декабря 2018

Я просто пытаюсь погрузиться в Node.js и тестирую основные функции, которые считаю полезными для выполнения моего проекта.Одним из них будет выполнение небольшого файла .exe, который я кодировал на C ++, который обрабатывает данные из текстовых файлов.Я понял, что 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 не выдает никакой ошибки.Спасибо за вашу помощь и извинения за мой новый язык!

...