不只是Web:十大令人振奮的Node.js項目
譯文除了在Web服務器領域大展拳腳之外,Node.js同樣也在無處不在的JavaScript應用程序創建當中散發出耀眼的光芒。
Node.js:不只是網站
就在僅僅幾年之前,Node.js初始版本剛剛誕生時還只是一款谷歌出于嘗試目的、利用Chromium V8打造而成的服務器端JavaScript引擎;然而時至今日,它已經成為一整套全面開花的完整平臺。PayPal等高流量網站的工程師們曾經撰寫出大量經驗心得,與大家分享Node.js如何令Web框架的創建工作變得更加簡便易行。
不過Node.js絕不只是一套Web堆棧——作為一項技術,它在多個不同層面煥發出勃勃生機。我們將通過今天的文章一同了解利用Node.js打造出的各類項目,其中包括服務器監控、流媒體、遠程控制以及桌面與移動應用等等。在了解了這么多背景信息后,大家一定也會發出這樣的感慨——Node.js的價值已經遠遠超出了常見Web服務器的范疇。

NodeOS
這款由Jacob Groundwater打造的項目在誕生之日起便承載著巨大的野心——希望圍繞Linux核心建立起一套新型環境。其中Node.js作為“shell”,而Node的mpn則被用于系統包管理器。到目前為止,NodeOS的首個版本以Docker與Vagrant為創建基礎——好的方面在于這樣能使早期版本在共享、fork以及迭代方面更加便捷;但負面影響是系統運行所涉及的hoops過多。
不過總體來說,該項目的核心思路仍然頗具吸引力。大家不妨試想一下,Node.js不僅將被用于包管理,而且還負責打理腳本、界面以及大部分其它操作系統創建所必需的任務。

Noduino
希望通過網頁控制自己Arduino的硬件技術人士們有福了,Noduino允許大家經由WebSocket或者串連接實現Arduino訪問。該項目目前尚處于起步階段,但驅動主板上的LED模塊、捕捉來自Arduino的事件(例如按下按鈕)等常見功能都可以正常支持。

Node-WebKit
作為專門針對Node.js應用程序的運行時,Node-WebKit允許大家將應用程序打包為精簡化Chromium副本并將其交付至任何Node.js及Chromium已經移植過的平臺(目前包括Linux、Mac OS X以及Windows)。打包的過程可以說非常簡單。我們只需要將Node.js應用程序副本進行壓縮、再添加一份清單,這就完成了。大家甚至可以通過Node.js方法及對象實現應用程序窗口菜單訪問與其它平臺原生操作。
跨平臺應用程序部署從來不是一件簡單的工作。如果大家希望能利用Web技術開發出桌面應用程序,那么不妨將Node-WebKit視為其它那些更大、更笨重框架的有益補充。

PDFKit
作為一款針對Node.js的PDF文檔創建庫,PDFKit允許大家利用一套“HTML 5 canvas類API”創建PDF文件,同時支持矢量圖形創建以及字體嵌入。由于項目尚未徹底成熟,目前不少標準PDF功能(例如文檔安全保護以及表格創建)仍然處于開發當中,不過文本換行、項目符號列表、高亮顯示以及注釋信息等功能已經正常可用。需要提醒大家的是,我們最好將PDFKit作為一款從頭開始創建PDF文件的工具,而不要將其用于文件轉換。如果各位需要對現有PDF文件進行調整,最好還是使用另一款名為“Scissors”的Node項目。

Log.io
Node.js在快速與Web兩方面具備驚人的優勢——而這兩種特性無疑是大家最希望在監控工具當中看到的。作為一款實時日志監控系統,Log.io利用Socket.io庫直接向大家的瀏覽器發送活動報告。在這里不存在持久層,受監控日志文件中的任何內容變動都會立即被轉發給服務器、然后再傳遞到我們面前。更重要的是,有了第三方處理機制的輔助,系統只需將格式正確的信息發送至服務器監聽TCP接口即可。

Nodecast或者Leapcast
谷歌的Chromecast還衍生出至少兩款Node.js應用程序,它們能夠幫助大家直接將基于移動設備的視頻或者音樂發送到PC機上。只需在PC端運行Nodecast或者Leapcast,啟動我們的移動設備,選擇一款支持Chromecast的應用程序,而后大家即可將移動端的內容傳輸到電腦上。就這兩者而言,Nodecast的復雜程度要低得多,但其功能也更弱一些。目前它能夠通過測試的媒體來源只有YouTube與谷歌音樂。請大家別把Nodecast與Nodecast庫弄混了,后者的作用在于為設備(例如Chromecast)提供使用撥號發現協議所需要的連接。

Nexe
在眾多看似渺小但卻實用性極高的Node.js工具當中,Nexe正是頗具代表性的一款——它的作用在于為Node.js應用創建單獨存在的可執行文件。生成的結果可以在無需額外安裝Node.js運行時的前提下直接運行,這就幫助非技術終端用戶徹底告別了所有與Node.js應用程序運行存在依賴關系的組件。(顯然,如果大家發布的是一款不涉及圖形用戶界面的Node.js應用,那么Nexe肯定能幫上大忙;不過對不起擁有圖形用戶界面的應用,Node-WebKit之類的方案才是正確的選擇)。再來說說缺點:Nexe最大的問題在于目前還無法作用于Windows平臺(只適用于Linux與Mac OS X),而且它也不支持原生Node.js模塊。

Hyro
在利用Node-WebKit所打造的應用程序當中,Hyro這款實時HTML 5編輯器可謂一枝獨秀。原始HTML內容被顯示在當前頁面的左手邊,而結果內容則被顯示在右手邊。語法高亮功能由CodeMirror提供。Hyro項目的開發者并不打算將其打造成一款成熟的Web IDE,而只是將其塑造為一套專門針對HTML或者CSS的輕量級記事本方案。從這個角度講,它可以被看作Node.js在適當支持應用程序卻又不過度介入方面的典型范例。

Hy0072o
在利用Node-WebKit所打造的應用程序當中,Hyro這款實時HTML 5編輯器可謂一枝獨秀。原始HTML內容被顯示在當前頁面的左手邊,而結果內容則被顯示在右手邊。語法高亮功能由CodeMirror提供。Hyro項目的開發者并不打算將其打造成一款成熟的Web IDE,而只是將其塑造為一套專門針對HTML或者CSS的輕量級記事本方案。從這個角度講,它可以被看作Node.js在適當支持應用程序卻又不過度介入方面的典型范例。

Haroopad
作為另一款將Chromium作為自身UI的Node.js應用程序,Haroopad允許大家Markdown類型的文本,并將其生成為HTML。編輯與查看在窗口中并排而列并同步滾動,而且始終保持實時更新。文檔也能夠以HTML或者Markdown格式通過郵件進行發送,通過這種方式大家可以在完全無需使用插件的前提下將其發送至Tumblr或者添加到Evernote當中。說到這個,我們希望Haroopad的開發人員們能添加一套插件架構。像這樣的一款程序存在很大改進空間。雖然他們一直在努力拓展多種格式,但目前Haroopad仍然只能支持HTML這一種。

TiddlyWiki5
這也是我個人最喜愛的項目。雖然命名顯得不夠簡潔,但TiddlyWiki的才藝實力簡直無窮無盡——這是一套維基系統,能夠在不連接網絡或者Web服務器的情況下通過單獨HTML文件或者本地方式運行。經過徹底重新設計的版本5能夠直接與Node.js相集成,從而實現大量原本獨立運行模式下根本無法完成的功能。到發稿之時,TiddlyWiki 5仍然處于測試階段,不過根據時間規劃我們將在今年年底迎來它的正式版本。
原文鏈接:http://www.infoworld.com/slideshow/131906/beyond-the-web-10-surprising-nodejs-projects-232369#slide1






















