Node.js 中 child_process模块的spawn和exec 方法之间的区别
2014-02-27 06:43
746 查看
Node.js 子进程模块 (
缓冲区默认容量是 200k,如果子进程返回的数据超过了这个容量限制,程序就会崩溃,相应的错误信息是"Error: maxBuffer exceeded"。通过调整exec 的参数中缓冲容量这一项来可以解决这个问题。但是,如果需要子进程返回大量数据Node 进程,最好使用
asynchronous)",意思是说尽管子进程执行是按照异步执行的,但是exec方法会等到子进程执行完毕后才将缓冲区内的数据一并返回主进程。
child_process) 有两个方法
spawn和
exec, 这两个方法的功能都是启动一个新进程。
child_process.spawn和
child_process.exec 两个方法之间最重要的区别就在于它们的返回对象。
child_process.spawn方法返回的是一个带有 标准输出
stdout和
stderr的流对象。
child_process.exec返回的是子进程输出缓冲区中所有的内容。
缓冲区默认容量是 200k,如果子进程返回的数据超过了这个容量限制,程序就会崩溃,相应的错误信息是"Error: maxBuffer exceeded"。通过调整exec 的参数中缓冲容量这一项来可以解决这个问题。但是,如果需要子进程返回大量数据Node 进程,最好使用
child_process.spawn方法。
child_process.spawn和
child_process.exec两个方法之间另外一个重要的区别在于它们的子进程异步方式有区别。
child_process.spawn是 "异步式异步(asynchronously asynchronous)",就是说,当一旦子进程启动后,就会向其返回的流对象输送数据。
child_process.exec是"同步式异步(synchronously
asynchronous)",意思是说尽管子进程执行是按照异步执行的,但是exec方法会等到子进程执行完毕后才将缓冲区内的数据一并返回主进程。
相关文章推荐
- nw.js node-webkit系列(25)child_process中spawn和exec方法的使用
- linux 下node.js 使用child_process模块的exec方法所遇问题
- 从Node.js的child_process模块来学习父子进程之间的通信
- Node.js child_process模块中的spawn和exec方法
- 详解从Node.js的child_process模块来学习父子进程之间的通信
- Node.js中request模块与http模块之间的区别
- node 进程管理 child_process [spawn,exec] | 珠峰培训node正式课 网络爬虫
- Node.js中的child_process模块详解
- Node.js进程通信模块child_process
- 详解Node.js中path模块的resolve()和join()方法的区别
- Node.js进程通信模块child_process
- Node.js进程通信模块child_process
- [朝花夕拾]关于nodejs中child_process之中spawn和exec的区别
- phantomjs - node.js parse child process output line by line (spawn) - Stack Overflow
- Node.js中process模块常用的属性和方法
- node.js 在使用child_process 模块时候,调试端口占用的问题解决方案(EADDRINUSE)
- Windows下Node.js使用child_process模块调用系统命令的编码问题
- Node.js进程通信模块child_process
- js区别IE6、IE7、IE8之间的方法
- 在 Node.js 中使用原生 ES 模块方法解析