一項顛覆性的技術進入技術市場總會帶來一陣震驚,但隨之而來每每是被放棄。然而,Node.js 固然不是這樣的狀況,它是一個開源的、跨平臺的基於 Chrome 的 JavaScript 運行時。Node.js 由 Ryan Dahl 於 2009 年開發,該平臺如今已成爲實時 Web 應用開發的獨特選擇,經過提供高度交互的用戶體驗來提升 ROI。javascript
使用 Node.js 的最大優勢是開發人員能夠在客戶端和服務器端編寫 JavaScript。值得一提的是,像 PayPal, Yahoo, eBay, Netflix, The Mail Online, 和 Walmart 這樣的企業已經經過使用 Node.js 實現了各自的業務。繼續閱讀下面的內容,瞭解大多數企業選擇 Node.js 開發 Web App 的十大主要緣由。html
使用 Node.js 進行 Web App 開發人氣暴漲背後的十大緣由:java
Node.js 使用由 Google 開發的 V8 引擎,它能夠將 JavaScript 編譯成原生機器碼並快速執行。因爲 Node.js 使用事件驅動的非阻塞 I/O 模型,所以對於內存使用和數據密集的實時 Web 應用十分高效和輕便,可在多個設備上工做。node
使用 Node.js,能夠很是快速地執行常見的 Web 應用任務,例如讀取或寫入數據庫,讀取或寫入網絡鏈接,以及讀取或寫入文件系統。Node.js 對於但願構建快速、強大的 Web 應用的開發人員來講是一個福音,它能夠有效地處理並行鏈接並增長吞吐量。程序員
在 LinkedIn 選擇了 Node.js 以後,它的移動流量大幅上升,並且服務器的數量從 30 個減小到 3 個。PayPal 是另外一個受益於 Node.js 的案例。在使用 Node.js 以後,PayPal 的響應時間縮短了 35%,與以前相比,每秒處理雙倍的請求。可在包括 Microsoft Windows, Mac OS X, 和 Unix 在內的多個服務器上運行 Node.js 應用。web
當前幾乎每一個公司都會實時查找用戶信息。一個簡單的緣由是,在生成客戶信息時,可靠地訪問客戶信息爲業務銷售提供了重要的推進途徑,經過爲用戶提供實際尋找的內容,而不是對其感興趣的隨機性。並且在過去的幾年裏,使用 Node.js 構建實時 Web APP 已經成爲最佳方法。數據庫
使用 Node.js,全部與底層套接字和協議有關的擔憂都會煙消雲散。使用 Node.js,能夠像在 PHP 中建立一個簡單的博客同樣快速構建一個實時的 Web 應用。Node.js 很是適合多用戶實時 Web 應用的場景,如遊戲和聊天應用。多用戶功能由事件循環經過 WebSocket 協議解決,該協議在 TCP 上工做。它還能夠爲 Web 開發防止 HTTP 的過分開銷。api
雖然 HTTP 請求和響應被認爲是兩個孤立的事件,但實際上它們是數據流。Node.js 的好處在於它能夠在上傳時進行文件處理。所以,在數據以流的形式出現的狀況下,能夠節省在總體流程中所浪費的大量時間。實時視頻或音頻也是這樣的狀況。瀏覽器
在瀏覽器和服務器均可以使用 JavaScript。若是一家公司須要爲瀏覽器端更改構建邏輯以轉移到服務器端,開發人員可經過使用 Node.js 代碼遷移來輕鬆實現。儘管如此,編寫運行在瀏覽器或服務器端的代碼並無太大的差別。
使用 Node.js,開發人員能夠自動發送和同步服務器端和客戶端之間的數據,由於它容許開發人員爲服務器和客戶端編寫 JavaScript 代碼。Meteor 是在 Node.js 之上建立的 Web 應用框架,爲客戶端和服務器端提供了相同代碼庫的支持。服務器上任何的數據更改都會在客戶端當即顯示。
「Node.js 不是一個支配 Web 開發世界的新平臺。相反,它是一個知足特定需求的平臺」,根據 Web 工程公司 Toptal 的說法,Node.js 真正的亮點在於構建快速的、可擴展的網絡應用。
使用 Node.js 最大的優勢之一是它做爲一個代理服務器時,爲不一樣響應時間的服務提供服務,或爲從多個源點收集數據提供服務。
爲了更好地理解請看下面這個例子:一個企業有一個服務器端應用,用於與第三方資源進行通訊,從不一樣來源收集數據,或將圖像和視頻存儲到第三方雲服務中。如今,儘管企業可使用專用服務器,但在不存在基礎架構或當須要解決方案進行本地開發時,Node.js 是更好的選擇。
Node.js 具備動態工具和模塊的動態存儲庫,程序員可使用它們共享應用開發。Node.js 能夠經過框架,模板系統以及與訪問者的實時通訊管理等使用成千上萬個模塊用於各類任務,如文件上傳管理,鏈接到 MySQL 數據庫或 Redis。
對於須要從新使用外部 JavaScript 開發者建立的代碼來解決某個特定的問題的程序員來講,Node.js 的包管理器或 NPM 是他們的救星。NPM 還容許 JavaScript 開發者下載針對之前在其應用中使用的特定代碼所作的更新。即便不想重用組織外的 JavaScript 開發者建立的代碼,也能夠採用基於模塊的方式來改進團隊成員之間的協同效應。
使用 NPM 後,PayPal 顯著提升了開發者的生產力。此外,互聯網支付巨頭不須要太多的開發者來構建一個應用,就像使用 Node.js 以前同樣。
對於數據庫查詢,Node.js 有一個優點,由於 JavaScript 可用於爲 MongoDB,CouchDB 等新的 NoSQL 數據庫編寫數據庫查詢。對於開發者來講,這是一個很大的緩解,由於他們在執行組合 Node.js 和 NoSQL 數據庫的任務時不須要記住語法差別。因爲 JSON 存儲的數據格式容許平滑運行,在數據轉換或不匹配中沒有任何障礙。所以 Node.js 對於實時 Web 應用來講確實是一個福音。
因爲 Node.js 在開發人員中十分受歡迎,所以它的託管已經取得了很大的成功。 PaaS(平臺即服務)服務提供商(如 Heroku 和 Modulus)爲單個命令的節點部署提供了支持。經過 Node.js 託管,可將頁面加載時間減小高達 50%,並下降託管應用程序所需的服務器數量。
Node.js 還有着很是有好的社區。由於擁有開源社區,Node.js 提供了許多出色的模塊,可爲 Web 應用增長更多優秀的功能。例如,Socket.io 可用於處理客戶端和服務器之間的恆定通訊,從而使服務器可向客戶端發送實時更新。Express.js, Koa.js, Hapi.js, Sails.js, Meteor 和 Derby 是由 Node.js 社區開發的一些其餘頂級框架,用於加速應用開發過程。
IoT 社區也歡迎將 Node.js 用於嵌入式設備和機器人,如 Cylon 和 Nodebots。此外,它已經成爲實時 Web APP 開發世界的巨人。上面提到有關 Node.js 的全部優勢是許多公司認爲 Node.js 是運行重負載 Web 應用的很好的技術,並容許團隊將其用於生產環境的緣由。
若是之前曾經使用過 Node.js 進行 Web 應用開發,請告訴咱們您的體驗。您是否也贊成 Node.js 真的是 Web 應用開發的一個福音?在評論中分享你的想法吧~
譯自:EVONTech
這裏推薦一下個人前端學習交流羣:784783012 ,裏面都是學習前端的,若是你想製做酷炫的網頁,想學習知識。本身整理了一份2018最全面前端學習資料,從最基礎的HTML+CSS+JS到移動端HTML5到各類框架都有整理,送給每一位前端小夥伴,有想學習web前端的,或是轉行,或是大學生,還有工做中想提高本身能力的,正在學習的小夥伴歡迎加入學習。
點擊:加入