Node.js 是一個基於Chrome JavaScript 執行階段建立的平台。

Node.js是一個事件驅動I/O服務端JavaScript環境,基於Google的V8引擎,V8引擎執行Javascript的速度非常快,效能非常好。

Node.js Stream(流) 語法

Stream 是一個抽象接口,Node 中有很多物件實作了這個接口。例如,對http 伺服器發起請求的request 物件就是一個 Stream,還有stdout(標準輸出)。

Node.js,Stream 有四種流類型:

Readable - 可讀操作。

Writable - 可寫入操作。

Duplex - 可讀可寫入操作.

Transform - 操作被寫入數據,然後讀出結果。

所有的 Stream 物件都是 EventEmitter 的實例。常用的事件有:

data - 當有資料可讀時觸發。

end - 沒有更多的資料可讀時觸發。

error - 在接收和寫入過程中發生錯誤時觸發。

finish - 所有資料已寫入到底層系統時觸發。

Node.js Stream(流) 範例

建立 main.js 檔案, 程式碼如下:

var fs = require("fs");var data = '';
// 创建可读流
var readerStream = fs.createReadStream('input.txt');
// 设置编码为 utf8。
readerStream.setEncoding('UTF8');
// 处理流事件 --> data, end, and error
readerStream.on('data', function(chunk) {   data += chunk;});
readerStream.on('end',function(){   console.log(data);});
readerStream.on('error', function(err){   console.log(err.stack);});
console.log("程序执行完毕");