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