关于node.js:nodejs-childprocess-模块用法总结

0次阅读

共计 734 个字符,预计需要花费 2 分钟才能阅读完成。

调用内部程序的四个异步办法别离是:execFile, spawn, exec 和 fork,四个办法的返回值都是 ChildProcess 实例,ChildProcess 实例领有 Process 的一部分罕用性能,例如:pid, stdin, stdout, stderr,等。他们的具体用法以及区别如下:

execFile

  • 能够调用 js 脚本代码(执行 node a.js),也能够调用其余类型的程序;
  • 父子过程不拆散,且不可设为父子过程拆散,基于回调 Buffer 获取子过程输入;
  • 父子过程能够应用信号量通信;

spawn

  • 能够调用 js 脚本代码(执行 node a.js),也能够调用其余类型的程序;
  • 默认父子过程不拆散,能够设为父子过程拆散,基于流获取子过程输入;
  • 父子过程能够应用信号量通信;

exec

  • 能够调用 js 脚本代码(执行 node a.js),也能够调用其余类型的程序;
  • 能够应用 shell 外壳的一些用法,例如:重定向,管道操作,通配符,等;
  • 父子过程不拆散,且不可设为父子过程拆散,基于回调 Buffer 获取子过程输入;
  • 父子过程能够应用信号量通信;

fork

  • fork 办法 只能 调用 js 脚本代码,或者说 专门 用来调用 js 脚本代码,非 js 脚本的其余程序,不能调用;
  • fork 办法默认父子过程拆散,并基于流获取子过程输入;
  • 因为父子过程拆散,所以子过程的流默认重定向到控制台;
  • 不须要像 spawn(detach=false),通过 pipe 调用将子过程的流重定向到父过程的 stdout 上;
  • fork 除了信号量,还能够过程间通信;

同步办法

  • fork 没有同步办法,其余三个办法有同步办法。execSync 和 execFileSync 返回值 Buffer 就是子过程的输入后果。spawnSync 返回对象的 stdout Buffer 中是子过程的输入。
正文完
 0