Node.js成為Web應(yīng)用開發(fā)最佳選擇的原因
一項顛覆性的技術(shù)進入技術(shù)市場總會帶來一陣震驚,但隨之而來往往是被放棄。然而,Node.js 當然不是這樣的情況,它是一個開源的、跨平臺的基于 Chrome 的 JavaScript 運行時。Node.js 由 Ryan Dahl 于 2009 年開發(fā),該平臺現(xiàn)在已成為實時 Web 應(yīng)用開發(fā)的獨特選擇,通過提供高度交互的用戶體驗來提高 ROI。
使用 Node.js 的最大優(yōu)點是開發(fā)人員可以在客戶端和服務(wù)器端編寫 JavaScript。值得一提的是,像 PayPal, Yahoo, eBay, Netflix, The Mail Online, 和 Walmart 這樣的企業(yè)已經(jīng)通過使用 Node.js 實現(xiàn)了各自的業(yè)務(wù)。繼續(xù)閱讀下面的內(nèi)容,了解大多數(shù)企業(yè)選擇 Node.js 開發(fā) Web App 的十大主要原因。
使用 Node.js 進行 Web App 開發(fā)人氣暴漲背后的十大原因:
Image Source: CronJ
1. 加快開發(fā)進度
Node.js 使用由 Google 開發(fā)的 V8 引擎,它可以將 JavaScript 編譯成原生機器碼并快速執(zhí)行。由于 Node.js 使用事件驅(qū)動的非阻塞 I/O 模型,因此對于內(nèi)存使用和數(shù)據(jù)密集的實時 Web 應(yīng)用十分高效和輕便,可在多個設(shè)備上工作。
使用 Node.js,可以非??焖俚貓?zhí)行常見的 Web 應(yīng)用任務(wù),例如讀取或?qū)懭霐?shù)據(jù)庫,讀取或?qū)懭刖W(wǎng)絡(luò)連接,以及讀取或?qū)懭胛募到y(tǒng)。Node.js 對于希望構(gòu)建快速、強大的 Web 應(yīng)用的開發(fā)人員來說是一個福音,它可以有效地處理并行連接并增加吞吐量。
在 LinkedIn 選擇了 Node.js 之后,它的移動流量大幅上升,而且服務(wù)器的數(shù)量從 30 個減少到 3 個。PayPal 是另一個受益于 Node.js 的案例。在使用 Node.js 之后,PayPal 的響應(yīng)時間縮短了 35%,與之前相比,每秒處理雙倍的請求??稍诎?Microsoft Windows, Mac OS X, 和 Unix 在內(nèi)的多個服務(wù)器上運行 Node.js 應(yīng)用。
2. 非常適合實時應(yīng)用程序開發(fā)
Image Source: agriyaservices.blogspot.com
當前幾乎每個公司都會實時查找用戶信息。一個簡單的原因是,在生成客戶信息時,可靠地訪問客戶信息為業(yè)務(wù)銷售提供了重要的推動途徑,通過為用戶提供實際尋找的內(nèi)容,而不是對其感興趣的隨機性。而且在過去的幾年里,使用 Node.js 構(gòu)建實時 Web APP 已經(jīng)成為最佳方法。
使用 Node.js,所有與底層套接字和協(xié)議有關(guān)的擔心都會煙消云散。使用 Node.js,可以像在 PHP 中創(chuàng)建一個簡單的博客一樣快速構(gòu)建一個實時的 Web 應(yīng)用。Node.js 非常適合多用戶實時 Web 應(yīng)用的場景,如游戲和聊天應(yīng)用。多用戶功能由事件循環(huán)通過 WebSocket 協(xié)議解決,該協(xié)議在 TCP 上工作。它還可以為 Web 開發(fā)防止 HTTP 的過度開銷。
3. 數(shù)據(jù)流
mage Source: Quora
雖然 HTTP 請求和響應(yīng)被認為是兩個孤立的事件,但實際上它們是數(shù)據(jù)流。Node.js 的好處在于它可以在上傳時進行文件處理。因此,在數(shù)據(jù)以流的形式出現(xiàn)的情況下,可以節(jié)省在整體流程中所浪費的大量時間。實時視頻或音頻也是這樣的情況。
4. Node.js 是無處不在的
在瀏覽器和服務(wù)器都可以使用 JavaScript。如果一家公司需要為瀏覽器端更改構(gòu)建邏輯以轉(zhuǎn)移到服務(wù)器端,開發(fā)人員可通過使用 Node.js 代碼遷移來輕松實現(xiàn)。盡管如此,編寫運行在瀏覽器或服務(wù)器端的代碼并沒有太大的差異。
5. 允許讓 Web 應(yīng)用使用單個代碼庫
使用 Node.js,開發(fā)人員可以自動發(fā)送和同步服務(wù)器端和客戶端之間的數(shù)據(jù),因為它允許開發(fā)人員為服務(wù)器和客戶端編寫 JavaScript 代碼。Meteor 是在 Node.js 之上創(chuàng)建的 Web 應(yīng)用框架,為客戶端和服務(wù)器端提供了相同代碼庫的支持。服務(wù)器上任何的數(shù)據(jù)更改都會在客戶端立即顯示。
“Node.js 不是一個支配 Web 開發(fā)世界的新平臺。相反,它是一個滿足特定需求的平臺”,根據(jù) Web 工程公司 Toptal 的說法,Node.js 真正的亮點在于構(gòu)建快速的、可擴展的網(wǎng)絡(luò)應(yīng)用。
6. 為代理服務(wù)器提供服務(wù)
使用 Node.js 最大的優(yōu)點之一是它作為一個代理服務(wù)器時,為不同響應(yīng)時間的服務(wù)提供服務(wù),或為從多個源點收集數(shù)據(jù)提供服務(wù)。
為了更好地理解請看下面這個例子:一個企業(yè)有一個服務(wù)器端應(yīng)用,用于與第三方資源進行通信,從不同來源收集數(shù)據(jù),或?qū)D像和視頻存儲到第三方云服務(wù)中。現(xiàn)在,盡管企業(yè)可以使用專用服務(wù)器,但在不存在基礎(chǔ)架構(gòu)或當需要解決方案進行本地開發(fā)時,Node.js 是更好的選擇。
7. 強大的 Node.js 包管理器(NPM)
Node.js 具有動態(tài)工具和模塊的動態(tài)存儲庫,程序員可以使用它們共享應(yīng)用開發(fā)。Node.js 可以通過框架,模板系統(tǒng)以及與訪問者的實時通信管理等使用成千上萬個模塊用于各種任務(wù),如文件上傳管理,連接到 MySQL 數(shù)據(jù)庫或 Redis。
Image Source: HostOnNet.com
對于需要重新使用外部 JavaScript 開發(fā)者創(chuàng)建的代碼來解決某個特定的問題的程序員來說,Node.js 的包管理器或 NPM 是他們的救星。NPM 還允許 JavaScript 開發(fā)者下載針對以前在其應(yīng)用中使用的特定代碼所做的更新。即使不想重用組織外的 JavaScript 開發(fā)者創(chuàng)建的代碼,也可以采用基于模塊的方式來改進團隊成員之間的協(xié)同效應(yīng)。
使用 NPM 后,PayPal 顯著提高了開發(fā)者的生產(chǎn)力。此外,互聯(lián)網(wǎng)支付巨頭不需要太多的開發(fā)者來構(gòu)建一個應(yīng)用,就像使用 Node.js 之前一樣。
8. Node.js 非常適合數(shù)據(jù)庫查詢
對于數(shù)據(jù)庫查詢,Node.js 有一個優(yōu)勢,因為 JavaScript 可用于為 MongoDB,CouchDB 等新的 NoSQL 數(shù)據(jù)庫編寫數(shù)據(jù)庫查詢。對于開發(fā)者來說,這是一個很大的緩解,因為他們在執(zhí)行組合 Node.js 和 NoSQL 數(shù)據(jù)庫的任務(wù)時不需要記住語法差異。由于 JSON 存儲的數(shù)據(jù)格式允許平滑運行,在數(shù)據(jù)轉(zhuǎn)換或不匹配中沒有任何障礙。因此 Node.js 對于實時 Web 應(yīng)用來說確實是一個福音。
9. Node.js 托管已經(jīng)達到一個新的臺階
由于 Node.js 在開發(fā)人員中十分受歡迎,因此它的托管已經(jīng)取得了很大的成功。 PaaS(平臺即服務(wù))服務(wù)提供商(如 Heroku 和 Modulus)為單個命令的節(jié)點部署提供了支持。通過 Node.js 托管,可將頁面加載時間減少高達 50%,并降低托管應(yīng)用程序所需的服務(wù)器數(shù)量。
10. 蓬勃發(fā)展的開源社區(qū)
Node.js 還有著非常有好的社區(qū)。因為擁有開源社區(qū),Node.js 提供了許多出色的模塊,可為 Web 應(yīng)用增加更多優(yōu)秀的功能。例如,Socket.io 可用于處理客戶端和服務(wù)器之間的恒定通信,從而使服務(wù)器可向客戶端發(fā)送實時更新。Express.js, Koa.js, Hapi.js, Sails.js, Meteor 和 Derby 是由 Node.js 社區(qū)開發(fā)的一些其他頂級框架,用于加速應(yīng)用開發(fā)過程。
IoT 社區(qū)也歡迎將 Node.js 用于嵌入式設(shè)備和機器人,如 Cylon 和 Nodebots。此外,它已經(jīng)成為實時 Web APP 開發(fā)世界的巨人。上面提到有關(guān) Node.js 的所有優(yōu)點是許多公司認為 Node.js 是運行重負載 Web 應(yīng)用的很好的技術(shù),并允許團隊將其用于生產(chǎn)環(huán)境的原因。
相關(guān)文章
nodejs如何在package.json中設(shè)置多條啟動命令
這篇文章主要介紹了nodejs如何在package.json中設(shè)置多條啟動命令,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03nodejs開發(fā)微信小程序?qū)崿F(xiàn)密碼加密
本文給大家分享的是在使用nodejs開發(fā)微信小程序的過程中,實現(xiàn)密碼加密的示例代碼,非常簡單,有需要的小伙伴可以參考下2017-07-07