首頁  >  文章  >  web前端  >  學習Nodejs的目的是什麼?

學習Nodejs的目的是什麼?

藏色散人
藏色散人轉載
2022-08-08 10:50:092174瀏覽
前端的知識更新的非常快,很多人會有疑問,貌似我開發中根本用不到node,那為什麼還需要學習呢?

其實不是說一定要學習node,而是為了職場更好的發展,尤其是為了學習更高階的程式思維,學習node很有必要。

以下是對學習node必要性的具體闡述【推薦:node.js影片教學

##1.node.js最根本的能力是讓js能夠脫離瀏覽器運行,學好node,可以讓自己不再是一個「純前端」

2.學習nodejs是進行前端工程化的基礎(NodeJS Stream)
3.學好node ,可以寫服務端API,實作獨立開發專案
4.作為中間層(引申問題:什麼是中間層?)

中間層(BFF)也叫做應用層,在架構中處於服務層(Java)與客戶端之間,主要發揮的作用:

    接收客戶端請求
  • #渲染HTML頁面
  • Bigpipe,Comet,Socket
  • 合併介面請求
  • 路由自訂
  • 資料快取

#現在為什麼說很多時候前端也需要寫自己的api?

1.經典的雙層結構:前端服務端

2.三層結構:前端後端服務端(現在的中大型專案所採用的結構)
三層結構的服務端只負責操作資料庫,管理資料
,把資料回給後端,基本上就是純粹的數據,不包含資料業務
後端就是所謂的中間層,如果前端來開發,那麼優先選擇nodejs,因為對於前端來說學習成本最低。

如果對自己的職場定位是做一輩子的純前端,那麼不需要學習nodejs,但是事實上做一輩子純前端很難,一般到了35歲,所具備的能力還只是“搬磚” ,那麼在職場上的價值會越來越低。

CTO往往是由服務端工程師擔任

理由:

1.需要設計整個公司的技術架構

2.需要從全局考慮問題
3.需要掌控公司最重要的資產:數據(誰掌握數據,誰才有話語權)

學好node並不是說就可以去做CTO,但至少可以大大的提高我們前端的職場地位。

從技術上,運用自己的能力獨立完成一個專案、產品,是一件很有成就感的事。

就算排除掉前面的所有理由,作為一名純前端,學習node也有很大的好處,可以培養我們的程式思維,擴展我們考慮問題的角度。

NodeJs的優缺點及適用場景

NodeJs的兩大特點:事件驅動,非阻塞I/O

所以NodeJs的最大的兩個優點
1.處理高並發,相比較於其他後端語言,每個連接發射(emit)一個在NodeJS引擎進程中運行的事(Event),放進事件隊列當中,而不是為每個連接生成一個新的OS線程(並為其分配一些配套內存)
2.I/O密集型應用

因為JavaScript單線程的特點, NodeJs不適合CPU密集型應用;CPU密集型應用給Node帶來的挑戰主要是:由於JavaScript單執行緒的原因,如果有長時間運行的運算(例如大循環),將會導致CPU時間片無法釋放,使得後續I/O無法發起;

解決方案:分解大型運算任務為多個小任務,使得運算能夠適時釋放,不阻塞I/O呼叫的發起;

##NodeJs的適用場景

    RESTful API
  • 這是NodeJS最理想的應用場景,可以處理數萬個連接,本身沒有太多的邏輯,只需要請求API,組織資料傳回即可。它本質上只是從某個資料庫中尋找一些值並將它們組成一個回應。由於回應是少量文本,入站請求也是少量的文本,因此流量不高,一台機器甚至可以處理最繁忙的公司的API需求。


  • 統一Web應用程式的UI層
  • 目前MVC的架構,在某種意義上來說,Web開發有兩個UI層,一個是在瀏覽器裡面我們最終看到的,另一個在server端,負責產生和拼接頁面。


  • 大量Ajax請求的應用程式
    例如個人化應用,每個使用者看到的頁面都不一樣,快取失效,需要在頁面載入的時候發起Ajax請求,NodeJS能回應大量的並發請求

    總而言之,NodeJS適合運用在高並發、I/O密集、少量業務邏輯的場景

    ##

以上是學習Nodejs的目的是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:jianshu.com。如有侵權,請聯絡admin@php.cn刪除