Pregunta Inicie otra aplicación de nodo usando node.js?


Tengo dos aplicaciones de nodo separadas. Me gustaría que uno de ellos pueda iniciar el otro en algún punto del código. ¿Cómo voy a hacer esto?


32
2017-09-18 00:57


origen


Respuestas:


Utilizar child_process.fork(). Esto es similar a spawn(), pero se usa para crear instancias enteras de V8. Por lo tanto, se usa especialmente para ejecutar nuevas instancias de Node. Si solo está ejecutando un comando, entonces use spawn() o exec().

var fork = require('child_process').fork;
var child = fork('./script');

Tenga en cuenta que al usar fork(), por defecto, el stdio las corrientes están asociadas con el padre. Esto significa que todos los resultados y errores se mostrarán en el proceso principal. Si no desea que las transmisiones se compartan con el padre, puede definir el stdio propiedad en las opciones:

var child = fork('./script', [], {
  stdio: 'pipe'
});

Luego puede manejar el proceso por separado de las transmisiones del proceso maestro.

child.stdin.on('data', function(data) {
  // output from the child process
});

También tenga en cuenta que el proceso no se cierra automáticamente. Debes llamar process.exit() desde dentro del proceso del nodo generado para que salga.


37
2017-09-18 01:01



Puede usar el módulo child_process, que le permitirá ejecutar procesos externos.

var childProcess = require('child_process'),
     ls;

 ls = childProcess.exec('ls -l', function (error, stdout, stderr) {    if (error) {
     console.log(error.stack);
     console.log('Error code: '+error.code);
     console.log('Signal received: '+error.signal);    }    console.log('Child Process STDOUT: '+stdout);    console.log('Child Process STDERR: '+stderr);  });

 ls.on('exit', function (code) {    console.log('Child process exited with exit code '+code);  });

http://docs.nodejitsu.com/articles/child-processes/how-to-spawn-a-child-process


2
2017-09-18 01:04