11. node多进程之同步方法——
exec
Sync
、
exec
File
Sync
、spawn
Sync
exec
Sync
、
exec
File
Sync
同步方法直接返回内容,内容是Buffer类型
spawn
Sync
返回的是
一个
对象,里面有stdout,output等等,这几个属性内容是buffer类型,还有status,pid等等
同步方法的错误用try…catch(err){…}来捕获
const cp = require('child_process')
// 同步方法直接返回内容,内容是Buffer类型
beforeExit 事件,在 Node 清空了 EventLoop 之后,再没有任何待处理任务时触发,可以在这里再部署一些任务,使得 Node 进程不退出,显示的终止程序时(process.exit()),不会触发。事件,当前进程抛出
一个
没有捕获的错误时触发,可以用它在进程结束前进行一些已分配资源的同步清理操作,尝试用它来恢复应用的正常运行的操作是不安全的。与spawn方法不同的是,fork会在父进程与子进程之间,建立
一个
通信管道pipe,用于进程之间的通信,也是IPC通信的基础。
1. spawn 用于
执行
一些实时获取的信息因为spawn返回的是流边
执行
边返回,
exec
是返回
一个
完整的buffer,buffer的大小是200k,如果超出会报错,而spawn是无上限的。
exec
File 适合
执行
可
执行
文件,例如
执行
一个
node脚本,或者
shell
文件,windows可以编写cmd脚本,posix,可以编写sh脚本。子进程是Nodejs核心API,可以写一些
shell
命令
或者编写前端工程化工具之类的,他也有很大的用处,以及处理CPU密集型应用。
exec
File
Sync
则使用的较少。
子进程是Nodejs的核心Api,如果你会
shell
命令
,它会有非常大的帮助,或者你喜欢编写前端工程化工具之类,它也有很大的用处,以及处理CPU密集型应用。创建子进程spwan:
执行
命令
exec
:
执行
命令
exec
File:
执行
可
执行
文件fork:创建node子
命令
exec
Sync
:
执行
命令
同步
执行
:
执行
可
执行
文件 同步
执行
spawn
Sync
:
执行
命令
同步
执行
。
今天遇到
一个
需要在Node服务中调用Python脚本的需求,这里就把这个场景单独抽离出来汇总一下方法在node中的child_process中有
exec
Sync
,
exec
两个方法来创建
一个
子进程,然后在子进程里
执行
对应的python
命令
,这两个
命令
可以让我们
执行
一个
脚本
命令
。
const {
exec
Sync
} = require('child_process');
exec
Sync
('./node_modules/.bin/babel plugins/router-generator/src --out-dir plugins/router-generator/dist')
node
执行
该代码,在Mac
执行
没问题,但在win10
执行
,则报错:
'.' 不是内部或外...
我们在使用
Node.js
的时候总有一些时候需要
执行
一些系统
命令
,与系统做一些交互,或者调用其他语言,这个时候该怎么做呢?
当然是使用child_process模块了,这个模块翻译过来就是子进程,当然正如其名,这个模块主要是通过产生子进程来发挥作用,下面我们就用实...
执行
shell
命令
是
Node.js
开发中常见的需求。本文将介绍在
Node.js
中如何通过child_process模块
执行
shell
命令
,包括
exec
()、
exec
File()和spawn()三种方法的区别和使用场景。