西安网站建设有那些公司好中国空间网站
西安网站建设有那些公司好,中国空间网站,要做好网络营销首先要,wordpress分类列表前加图标child_process 子进程
子进程是Nodejs核心API#xff0c;如果你会shell命令#xff0c;他会有非常大的帮助#xff0c;或者你喜欢编写前端工程化工具之类的#xff0c;他也有很大的用处#xff0c;以及处理CPU密集型应用。
创建子进程
Nodejs创建子进程共有7个API Sync…child_process 子进程
子进程是Nodejs核心API如果你会shell命令他会有非常大的帮助或者你喜欢编写前端工程化工具之类的他也有很大的用处以及处理CPU密集型应用。
创建子进程
Nodejs创建子进程共有7个API Sync同步API 不加是异步API
spawn 执行命令exec 执行命令execFile 执行可执行文件fork 创建node子进程execSync 执行命令 同步执行execFileSync 执行可执行文件 同步执行spawnSync 执行命令 同步执行
usage
exec
child_process.exec(command, [options], callback)获取nodejs 版本号 exec(node -v,(err,stdout,stderr){if(err){return err}console.log(stdout.toString())})options 配置项
cwd string 子进程的当前工作目录。
env Object 环境变量键值对。
encoding string 默认为 utf8。
shell string 用于执行命令的 shell。 在 UNIX 上默认为 /bin/sh在 Windows 上默认为 process.env.ComSpec。 详见 Shell Requirements 与 Default Windows Shell。
timeout number 默认为 0。
maxBuffer number stdout 或 stderr 允许的最大字节数。 默认为 200*1024。 如果超过限制则子进程会被终止。 查看警告 maxBuffer and Unicode。
killSignal string | integer 默认为 SIGTERM。
uid number 设置该进程的用户标识。详见 setuid(2)
gid number 设置该进程的组标识。详见 setgid(2)
execSync
获取node版本号 如果要执行单次shell命令execSync方便一些 options同上
const nodeVersion execSync(node -v)
console.log(nodeVersion.toString(utf-8))打开谷歌浏览器 使用exec可以打开一些软件例如 wx 谷歌 qq音乐等 以下会打开百度并且进入无痕模式
execSync(start chrome http://www.baidu.com --incognito)execFile
execFile 适合执行可执行文件例如执行一个node脚本或者shell文件windows可以编写cmd脚本posix可以编写sh脚本 简单示例 bat.cmd
创建一个文件夹mkdir 进入目录 写入一个文件test.js 最后执行
echo 开始mkdir test cd ./testecho console.log(test1232131) test.jsecho 结束node test.js
使用execFile 执行这个
execFile(path.resolve(process.cwd(),./bat.cmd),null,(err,stdout){console.log(stdout.toString())
})spawn spawn 用于执行一些实时获取的信息因为spawn返回的是流边执行边返回exec是返回一个完整的bufferbuffer的大小是200k如果超出会报错而spawn是无上限的。 spawn在执行完成后会抛出close事件监听并返回状态码通过状态码可以知道子进程是否顺利执行。exec只能通过返回的buffer去识别完成状态识别起来较为麻烦 // 命令 参数 options配置
const {stdout} spawn(netstat,[-an],{})//返回的数据用data事件接受
stdout.on(data,(steram){console.log(steram.toString())
})exec - execFile - spawn exec是底层通过execFile实现 execFile底层通过spawn实现
fork
场景适合大量的计算或者容易阻塞主进程操作的一些代码就适合开发fork
index.js
const {fork} require(child_process)const testProcess fork(./test.js)testProcess.send(我是主进程)testProcess.on(message,(data){console.log(我是主进程接受消息111,data)
})
test.js
process.on(message,(data){console.log(子进程接受消息,data)
})process.send(我是子进程)send 发送信息 message接收消息可以相互发送接收。
fork底层使用的是IPC通道进行通讯的
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/88234.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!