考虑下面这个node.js
应用:
var spawn = require('child_process').spawn,
dir = spawn('dir', ['*.txt', '/b', '/s']);
dir.stdout.on('data', function (data) {
//(A)
console.log('stdout: ' + data);
});
在(A)中,on data
事件等待stdout
输出,我们可以想象输出来自cmd /c dir *.txt /b /s
的'逐行'。
但它不会发生。在data
变量中,stdout
输出带有多行,并处理每个文件路径,我们必须按CRLF(\r\n
)拆分。为什么会这样呢?
答案 0 :(得分:2)
因为这只是来自子进程标准输出的纯数据流。不知道该数据是否是任何特定格式,或者它是否包含任何特定字符。因此,数据被视为字节流并以块的形式处理,而不考虑这些字节的内容或含义。这是系统周围最常见的管道数据形式。但请注意,有一些包装器流将缓冲原始数据流并为您提供一系列文本。 You will find many modules for this on npmjs.org