Node.js child_process.execFile () nie działa z własnej .exe

głosy
0

Ja po prostu staramy się zanurzyć node.js a ja testuje podstawowe funkcje, które uważam za pomocne do realizacji mojego projektu. Jednym z nich będzie wykonanie mały plik .exe mam zakodowany w C ++, który przetwarza dane z plików tekstowych. Pomyślałem, że child_process.execFile może być najlepszym sposobem, aby to osiągnąć. Więc napisałem mały skrypt, aby uruchomić serwer i wywołać plik wykonywalny. Do pierwszego testu, ustawić ścieżkę do „osób trzecich”. - exe i to działało w porządku (program jest uruchamiany zgodnie z oczekiwaniami). Jednak, kiedy kierować własną .exe nic się nie dzieje w ogóle, chociaż ścieżka jest poprawna (co countercheck z fs.access). Ręczne wykonanie pliku przez zwykłe dwukrotne kliknięcie na .exe również działa całkowicie w porządku i txt pliki są odpowiednio przetwarzane. Więc teraz zastanawiam się, czy się czegoś. fundamentalnie błędne, np robi .exe konieczność spełnienia pewnego warunku, aby być wykonywalny z execfile?

Tu jest mój kodu:

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);
});

Wyjście konsola jest „... C: /path/to/file.exe istnieje”. execfile nie wyrzuca żadnego błędu. Thx za pomoc i przepraszam za mój język noob!

Utwórz 18/12/2018 o 11:07
źródło użytkownik
W innych językach...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more