伴隨著官方公告,nodejs 終於也邁向了 v0.10 最新的穩定版本
Node v0.10.0 (Stable) blog.nodejs.org/2013/03/11/nod…
— node js (@nodejs){' '} March 11, 2013
想快速了解新版的變動,可以直接看官方公告或是對岸的 cnode 成員的翻譯文
不外乎是改良與效能改進,不過 v0.10 最大的改變在於改良了原有的stream,所以我也 只打算在這邊提關於 Stream2 的部份,如果是想了解其他部分的話,可以跳過這邊直接看上面列的那兩篇文章,或是官方之前寫的介面變動說明。
除了原有的 ReadStream, WriteStream 之外,加入了Duplex跟Transform兩種新的類別。Duplex 就是同時有 Read & Write 的功能,而 Transform 是更進一步,當你需要"在中間動點手腳"的時候用的,譬如 zlib 就是繼承 Transfrom 來實作的。
稍微列一下大概的用法,Duplex 必須實作_read & _write 兩個方法,然後 Transform 則是_transform
基本上就是個能跑秀個樣子的範例 XD,想看一下實際的程式,Duplex 可以參考net,然後 Transform 則是zlib,使用介面與舊版是相容的(理論上 XD),不過新版之後的 ReadStream 使用方法有變動,所以如果你是用舊的方式Listen 'data', resume() and pause()
,都會切回舊的 stream。
然後 v0.10 中,crypto也已經支援 Stream 了,所以之後加/解密之類的動作,都可以直接pipe
過去就可以了,相當方便,再加上原本的 fs, net, http, tls,都可以直接用 stream 來互相溝通了 :)