¿Es posible ejecutar un programa externo desde node.js? ¿Hay un equivalente a os.system()
de Python o cualquier biblioteca que agregue esta funcionalidad?¿Cómo ejecutar un programa externo desde Node.js?
Respuesta
Desea utilizar el módulo child_process
. Consulte the documentation, que proporciona varios ejemplos claros de varios casos de uso.
De la documentación Node.js:
Node proporciona una facilidad popen tri-direccional (3) a través de la clase ChildProcess.
var exec = require('child_process').exec;
exec('pwd', function callback(error, stdout, stderr){
// result
});
Cuál es la mejor manera de actuar en función del resultado del proceso secundario. Ejemplo ... si el proceso devuelve un código de salida 0, y quiero llamar a un método diferente, me parece que tengo una gran cantidad de errores. – continuousqa
@continuousqa - Esta respuesta tiene 4 años. Si tiene problemas, publique una nueva pregunta sobre SO y consulte esta si es necesario. –
Este [artículo] (https://medium.com/@graeme_boy/how-to-optimize-cpu-intensive-work-in-node-js-cdc09099ed41#.se7f974h7) tiene buenos consejos sobre el uso de 'child_process'. –
ejecutivo tiene limitación de memoria del tamaño del búfer de 512k. En este caso, es mejor usar spawn. Con un engendro tiene acceso a la salida estándar del comando ejecutado en tiempo de ejecución
var spawn = require('child_process').spawn;
var prc = spawn('java', ['-jar', '-Xmx512M', '-Dfile.encoding=utf8', 'script/importlistings.jar']);
//noinspection JSUnresolvedFunction
prc.stdout.setEncoding('utf8');
prc.stdout.on('data', function (data) {
var str = data.toString()
var lines = str.split(/(\r?\n)/g);
console.log(lines.join(""));
});
prc.on('close', function (code) {
console.log('process exit code ' + code);
});
Tomé este código y no muestra la salida del proceso generado http://stackoverflow.com/questions/21302350/node-js-cant-get-output-of-spawned- proceso –
@PaulVerest: Su salida puede haber estado en 'stderr' en lugar de' stdout'. En mi caso, aunque el 'cierre' nunca llegue ... – hippietrail
La forma más sencilla es:
const exec = require("child_process").exec
exec('yourApp').unref()
unref es necesario poner fin a su proceso sin esperar a que "yourapp"
Aquí están los ejecutivos docs
Creo que esto solo funciona para engendrar – googamanga
- 1. Ejecutar programa externo desde Java
- 2. Intentando ejecutar un editor externo desde un programa Go
- 3. ¿Cómo se ejecuta un programa externo en node.js en Windows?
- 4. Llamar a un programa externo desde OCaml
- 5. ¿cómo puedo ejecutar un programa externo en C?
- 6. ¿Cómo ejecutar un programa Java desde C#?
- 7. ¿Cómo puedo ejecutar un programa externo desde C y analizar su salida?
- 8. ¿Cómo ejecutar un programa externo a través de un programa C#?
- 9. Ejecutar archivo .jar desde un programa Java
- 10. ¿Cómo ejecutar testcase externo (Class, junit) en el programa java?
- 11. Ejecutar programa desde dentro de un programa C
- 12. Ejecutar un programa desde ASP.NET C#
- 13. C#: ejecutar el programa de consola externo como oculto
- 14. Cómo ejecutar un script bash desde el programa C++
- 15. ¿Cómo ejecutar un programa desde el descriptor de archivo?
- 16. ¿Puedo ejecutar un archivo .coffee directamente desde node.js?
- 17. ¿Cómo iniciar y ejecutar un script externo en segundo plano?
- 18. Ejecutar programa desde el conjunto de bytes
- 19. Ejecutar programa python desde otro programa python (con ciertos requisitos)
- 20. Cómo ejecutar un programa externo, p. Bloc de notas, utilizando hipervínculo?
- 21. Cómo crear un programa ejecutable desde AppleScript
- 22. Llamar al programa externo desde python y obtener su salida
- 23. Cómo abrir un archivo externo desde HTML
- 24. Ejecutar un programa desde una página web local
- 25. Ejecutar un programa desde PowerShell con tiempo de espera
- 26. Incrustar un archivo ejecutable externo dentro de un programa C#
- 27. ¿Cómo ejecutar un programa C en Ubuntu?
- 28. ¿Cómo ejecutar un programa de Hadoop?
- 29. ¿Cómo llamar a un programa externo con parámetros?
- 30. ¿Cómo ejecutar un archivo externo desde el intérprete interactivo scala (REPL)?
Probablemente debería proporcionar el código de muestra con la respuesta en lugar de decirle a alguien que lea los documentos. – jww