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