Open imeay opened 6 years ago
process 对象是一个全局变量,它提供当前 Node.js 进程的有关信息,以及控制当前 Node.js 进程
事件触发条件
process.argv 属性返回一个数组,这个数组包含了启动Node.js进程时的命令行参数。第一个元素为process.execPath。如果需要获取argv[0]的值请参见 process.argv0。第二个元素为当前执行的JavaScript文件路径。剩余的元素为其他命令行参数。
下面是一个例子
process.stdin.on('data', (d) => { const data = d.toString(); const [num1, num2] = data.split(' '); process.stdout.write(`${(Number(num1) + Number(num2)).toString()}\n`); })
输出
➜ child_process node index.js 9 10 19 4 6
它们是一个双工流 双工流就是同时实现了 Readable 和 Writable 的流,即可以作为上游生产数据,又可以作为下游消费数据 可以看以下例子
const { createWriteStream } = require('fs'); const writable = createWriteStream('./file.txt'); process.stdin.pipe(process.stdout).pipe(writable);
由于 process.stdout 实现了双工流,所以消费stdin流数据时同时传输数据流给到可写流
申请了一定内存空间的 buffer 就像 一个池子装了一定的水,steam 流就相当是流动的水。
const buffer = Buffer.from('chenxiaochi'); process.stdout.write(buffer) process.stdout.end();
NodeJS Stream 五:双工流 Node.js Streams: Everything you need to know
process 对象是一个全局变量,它提供当前 Node.js 进程的有关信息,以及控制当前 Node.js 进程
process exit
事件触发条件
process.argv
process.argv 属性返回一个数组,这个数组包含了启动Node.js进程时的命令行参数。第一个元素为process.execPath。如果需要获取argv[0]的值请参见 process.argv0。第二个元素为当前执行的JavaScript文件路径。剩余的元素为其他命令行参数。
process.stdin process.stdout
下面是一个例子
输出
它们是一个双工流 双工流就是同时实现了 Readable 和 Writable 的流,即可以作为上游生产数据,又可以作为下游消费数据 可以看以下例子
由于 process.stdout 实现了双工流,所以消费stdin流数据时同时传输数据流给到可写流
buffer
申请了一定内存空间的 buffer 就像 一个池子装了一定的水,steam 流就相当是流动的水。
文档参考
NodeJS Stream 五:双工流 Node.js Streams: Everything you need to know