一、node.js可以用來做什么
1、單頁應用程序 (SPA) 開發(fā)
與單頁網(wǎng)站一樣,Node.js可以構建單頁應用程序,其外觀類似于桌面應用程序。由于其多功能選項,Node.js非常適合構建社交網(wǎng)絡平臺、動態(tài)網(wǎng)站和郵件解決方案。更重要的是,Node.js后端的異步數(shù)據(jù)流質量使其成為SPA開發(fā)的優(yōu)異選擇。
2、聊天機器人
Node.js為實時聊天機器人和聊天應用程序提供少數(shù)高級功能。多用戶應用程序、密集數(shù)據(jù)、所有設備上的大量流量等關鍵功能在聊天機器人中非常受歡迎。Node.js達到了優(yōu)異點,因為它在不同的設備上運行,涵蓋了聊天和聊天機器人應用程序中的所有范式。此外,Node.js 可以輕松執(zhí)行 IM 和實時應用中流行的推送通知和服務器端事件循環(huán)。
3、數(shù)據(jù)流
像Netflix這樣的巨頭歡迎Node.js來服務于全球190個國家和超過1.2億用戶觀看流媒體內容超過1億小時。Node.js在處理文件時擁有明顯的優(yōu)勢,具備超快速度的編碼和上傳功能。許多在線時尚電子商務平臺和大數(shù)據(jù)流媒體視頻應用程序也已經(jīng)利用了這一點。
4、社交媒體網(wǎng)絡的后端
許多知名的網(wǎng)站,如LinkedIn和Medium,都是在Node.js上重建的。 為社交媒體網(wǎng)站構建后端需要節(jié)點的基本組合。Node.js 通過其 V8 引擎提供超快的路由以及安全身份驗證??蓴U展性是豐富社交媒體網(wǎng)絡的最重要因素之一。
5、物聯(lián)網(wǎng)應用開發(fā)
物聯(lián)網(wǎng)在最近十年中急劇流行。從那時起,Node.js 一直是希望構建公共和私有物聯(lián)網(wǎng)解決方案系統(tǒng)的組織的優(yōu)選解決方案之一。Node.js的核心優(yōu)勢是其出色的能力,可以無縫處理并發(fā)請求,其中包含網(wǎng)絡上數(shù)十億臺設備發(fā)布的數(shù)千個事件。得益于 Node.js事件驅動的服務器架構和異步處理物聯(lián)網(wǎng)網(wǎng)絡上相關的繁重 I/O 操作。此外,Node.js 在可寫和可讀的通道和流上運行,這就是為什么它是非常適合物聯(lián)網(wǎng)應用程序開發(fā)的平臺。
二、適合NodeJS的場景
1、RESTful API
這是NodeJS最理想的應用場景,可以處理數(shù)萬條連接,本身沒有太多的邏輯,只需要請求API,組織數(shù)據(jù)進行返回即可。它本質上只是從某個數(shù)據(jù)庫中查找 一些值并將它們組成一個響應。由于響應是少量文本,入站請求也是少量的文本,因此流量不高,一臺機器甚至也可以處理最繁忙的公司的API需求。
2、統(tǒng)一Web應用的UI層
目前MVC的架構,在某種意義上來說,Web開發(fā)有兩個UI層,一個是在瀏覽器里面我們最終看到的,另一個在server端,負責生成和拼接頁面。
不討論這種架構是好是壞,但是有另外一種實踐,面向服務的架構,更好的做前后端的依賴分離。如果所有的關鍵業(yè)務邏輯都封裝成REST調用,就意味著在上層 只需要考慮如何用這些REST接口構建具體的應用。那些后端程序員們根本不操心具體數(shù)據(jù)是如何從一個頁面?zhèn)鬟f到另一個頁面的,他們也不用管用戶數(shù)據(jù)更新是 通過Ajax異步獲取的還是通過刷新頁面。
3、大量Ajax請求的應用
例如個性化應用,每個用戶看到的頁面都不一樣,緩存失效,需要在頁面加載的時候發(fā)起Ajax請求,NodeJS能響應大量的并發(fā)請求。
總而言之,NodeJS適合運用在高并發(fā)、I/O密集、少量業(yè)務邏輯的場景。
延伸閱讀1:node.js是什么
Node.js是一種開源、跨平臺的JavaScript運行環(huán)境,可以在服務器端運行JavaScript代碼。它采用事件驅動、非阻塞I/O模型,可以輕松處理大量并發(fā)連接,從而使其非常適合構建高性能、可擴展性強的網(wǎng)絡應用程序。Node.js的優(yōu)勢之一是能夠快速地處理數(shù)據(jù),因此在處理I/O密集型操作時非常高效。