node process
Opened this issue · 0 comments
imeay commented
process 对象是一个全局变量,它提供当前 Node.js 进程的有关信息,以及控制当前 Node.js 进程
process exit
事件触发条件
- 显式调用 process.exit()
- Node.js 事件循环数组中不再有额外的工作
process.argv
process.argv 属性返回一个数组,这个数组包含了启动Node.js进程时的命令行参数。第一个元素为process.execPath。如果需要获取argv[0]的值请参见 process.argv0。第二个元素为当前执行的JavaScript文件路径。剩余的元素为其他命令行参数。
process.stdin process.stdout
下面是一个例子
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
申请了一定内存空间的 buffer 就像 一个池子装了一定的水,steam 流就相当是流动的水。
const buffer = Buffer.from('chenxiaochi');
process.stdout.write(buffer)
process.stdout.end();
文档参考
NodeJS Stream 五:双工流
Node.js Streams: Everything you need to know