在閒暇時,我自學了一下node.js,如今我把我的體會說一下:Node.js ,或者 Node ,是一個可讓 JavaScript 運行在服務器端的平臺。它可讓
JavaScript 脫離瀏覽器的束縛運行在通常的服務器環境下,就像運行 Python、Perl、PHP、Ruby
程序同樣。你能夠用 Node.js 輕鬆地進行服務器端應用開發,Python、Perl、PHP、Ruby 能
作的事情 Node.js 幾乎都能作,並且能夠作得更好。
Node.js 是一個爲實時Web (Real-time Web )應用開發而誕生的平臺,它從誕生之初就充分
考慮了在實時響應、超大規模數據要求下架構的可擴展性。這使得它摒棄了傳統平臺依靠多線
程來實現高併發的設計思路,而採用了單線程、異步式I/O、事件驅動式的程序設計模型。這些
特性不只帶來了巨大的性能提高,還減小了多線程程序設計的複雜性,進而提升了開發效率。
Node.js 最初是由 Ryan Dahl 發起的開源項目,後來被 Joyent 公司注意到。Joyent 公司將
Ryan Dahl 招入旗下,所以如今的 Node.js 由 Joyent 公司管理並維護。儘管它誕生的時間(2009
年)還不長,但它的周圍已經造成了一個龐大的生態系統。Node.js 有着強大而靈活的 包管
理器 (node package manager ,npm ),目前已經有上萬個第三方模塊,其中有網站開發框架,
有 MySQL、PostgreSQL、MongoDB 數據庫接口,有模板語言解析、CSS 生成工具、郵件、
加密、圖形、調試支持,甚至還有圖形用戶界面和操做系統 API工具。由 VMware 公司創建
的雲計算平臺 Cloud Foundry 率先支持了 Node.js。2011年6月,微軟宣佈與 Joyent 公司合做,
將 Node.js 移植到 Windows ,同時 Windows Azure 雲計算平臺也支持 Node.js。Node.js 目前
還處在迅速發展階段,相信在不久的將來它必定會成爲流行的Web應用開發平臺。node
Node.js 不是一種獨立的語言,與 PHP、Python、Perl、Ruby 的「既是語言也是平臺」
不一樣。Node.js 也不是一個 JavaScript 框架,不一樣於 CakePHP、Django、Rails。Node.js 更不
是瀏覽器端的庫,不能與 jQuery、ExtJS 相提並論。Node.js 是一個讓 JavaScript 運行在服務
端的開發平臺,它讓 JavaScript 成爲腳本語言世界的一等公民,在服務端堪與 PHP、Python、
Perl、Ruby 分庭抗禮。 文檔對象模型(DOM )和瀏覽器對象模型(BOM )組成的,而 Mozilla 則指出 JavaScript 由 1
Core JavaScript 和 Client JavaScript 組成。之因此會有這種分歧,是由於 JavaScript 和瀏覽器
之間複雜的歷史淵源,以及其命途多舛的發展歷程所共同形成的,咱們會在後面詳述。咱們
能夠認爲,Node.js 中所謂的 JavaScript 只是 Core JavaScript ,或者說是 ECMAScript 的一個
實現,不包含 DOM、BOM 或者 Client JavaScript。這是由於 Node.js 不運行在瀏覽器中,所 2
以不須要使用瀏覽器中的許多特性。
Node.js 是一個讓 JavaScript 運行在瀏覽器以外的平臺。它實現了諸如文件系統、模塊、
包、操做系統 API、網絡通訊等 Core JavaScript 沒有或者不完善的功能。歷史上將 JavaScript
3
移植到瀏覽器外的計劃不止一個,但Node.js 是最出色的一個。隨着 Node.js 的成功,各類瀏
覽器外的 JavaScript 實現逐步興起,所以產生了 CommonJS 規範。CommonJS 試圖擬定一套
完整的 JavaScript 規範,以彌補普通應用程序所需的 API ,譬如文件系統訪問、命令行、模
塊管理、函數庫集成等功能。CommonJS 制定者但願衆多服務端 JavaScript 實現遵循 4
CommonJS 規範,以便相互兼容和代碼複用。Node.js 的部份實現遵循了CommonJS規範,但
因爲二者還都處於誕生之初的快速變化期,也會有不一致的地方。
Node.js 的 JavaScript 引擎是 V8 ,來自 Google Chrome 項目。V8 號稱是目前世界上最快
的 JavaScript 引擎,經歷了數次引擎革命,它的 JIT (Just-in-time Compilation ,即時編譯) 5
執行速度已經快到了接近本地代碼的執行速度。Node.js 不運行在瀏覽器中,因此也就不存
在 JavaScript 的瀏覽器兼容性問題,你能夠放心地使用 JavaScript 語言的全部特性。Node.js 能爲網絡而生。Node.js 數據庫
能作的遠不止開發一個網 站那麼簡單,使用 Node.js ,你能夠輕鬆地開發: 具備複雜邏輯的網站; 基於社交網絡的大規模 npm
Web 應用; Web Socket 服務器; TCP/UDP 套接字應用程序。這就是個人;初識謝謝。瀏覽器