Node.js child_process.execFile () no funciona con la propia .exe

votos
0

Estoy tratando de sumergirse en Node.js y estoy probando las funcionalidades básicas que considero útiles para llevar a cabo mi proyecto. Uno de ellos sería la ejecución de un pequeño archivo .exe codifiqué en C ++ que procesa los datos de archivos de texto. Me di cuenta de que child_process.execFile podría ser el mejor método para lograrlo. Así que escribí un pequeño script para iniciar un servidor e invocar un archivo ejecutable. Para la primera prueba, puse el camino hacia una tercera parte -. Exe y funcionó muy bien (programa se inicia como se esperaba). Sin embargo, cuando me oriento mi propia nada .exe que sucede en absoluto, aunque la ruta es correcta (que countercheck con fs.access). ejecutar manualmente el archivo por simple doble clic en el archivo .exe también funciona totalmente bien y txt archivos se procesa en consecuencia. Así que ahora me pregunto si conseguir algo. fundamentalmente equivocado, por ejemplo, lo hace la necesidad .exe para cumplir una determinada condición para ser ejecutable con execfile?

Aquí está mi código:

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

La salida de la consola es ... C: existe /path/to/file.exe. execfile no lanza ningún error. Thx por su ayuda y disculpas por mi lenguaje novato!

Publicado el 18/12/2018 a las 11:07
fuente por usuario
En otros idiomas...                            

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