node在大前端中的應用

關於node的使用已經很久了,使用範圍也很廣,似乎有前端的地方就有node,那麼來思考一個問題,node到底是用來幹嘛的呢?本文從五個大的方面對該問題進行了解釋。

我們知道node的出現,讓前端開發既ajax之後,有了全新的面貌,在開發效率,性能等層面都有質的提升。歸納一直是知識提升的重要一環,參考了很多內容,本文對node的應用做了一個入門級的總結。讀完本文,希望可以清楚地認識到node在大前端中的地位和應用。

首先看一張圖:

node帶來了什麼:

從圖中可以看到node的應用是非常廣泛的,而最常用的就是工程化,自動化,npm

node基本概念

1,不在瀏覽器裏運行的javascript

2,基於Chrome JavaScript 運行時建立的一個平臺

3,一個事件驅動I/O服務端JavaScript環境,基於Google的V8引擎

接下來,詳細看下Node.js在大前端中的應用。

廣義上應用

在非瀏覽器端運行的js,包括前端環境搭建,雲構建,服務,中間件,都有node.js的應用場景

具體應用

一、前端工具鏈層面

二、npm

三、工程化相關

四、前後端完全分離

五、 服務端

一、前端工具鏈

babel, webpack, eslint, jest等的具體使用不展開討論

二、npm

1,自有命令

用來管理npm包,執行node文件

2,npm包

特點:npm包整體是對一類有共同應用的代碼抽象,包括了邏輯抽象,組件抽象,函數抽象

三、工程化相關

前端環境的建立是node.js在前端開發工作中最能體現價值的應用之一,node的出現使得前端開發從刀耕火種的時代進入了科技時代。前端工程化依賴於前面提到的webpack,gulp,babel,eslint等,完整的腳手架體系除了客戶端能力,還包括自動構建(比如jenkins),命令行發佈的功能

開發桌面應用

Node.js讓使用js開發桌面應用成爲了可能,electron是當前比較流行的桌面應用開發工具,它 nodejs和chromium的結合起來,讓使用者可以調用node.js的函數,可以使用幾乎所有的nodejs社區裏的module。

當下web應用非常流行,桌面應用似乎被遺忘,不過桌面應用也有一定的優勢,比如在前端工程化領域,可以使用桌面應用作爲統一的gui集成工具,讓前端工程變得統一化,簡單化。

前端工程化的意義

四、前後端完全分離

1,前端應用脫離服務端代碼,獨立部署在node.js提供的服務上

渲染方式有兩種,一種是採用的常規渲染,在瀏覽器中生成html代碼;

另一種是採用服務端渲染(ssr),這種渲染方式跟之前java生成html代碼的方式類似,但是現在的ssr和真正的服務端並沒有太多關係,ssr是在node端渲染的方式

2,基於大型項目的全棧開發

在前端獨立部署的基礎上,node端加入了數據處理,接口代理,終端適配等邏輯代碼,使得前端擴展性,性能大大增強。常見的全棧框架有egg,midway等

前後端完全分離的必要性

1,在開發過程中,有些職責劃分不清晰,前後端分離是前端不再依賴於後端,後端可以 專注於model層,前端專注於view和controller

2,在web性能優化中,前端所能做的優化工作有很大的侷限性,很多優化要在合後端協調的基礎上完成,node.js作爲中間層,讓前端有足夠的優化決定權

3,前端可以基於業務,調整前端架構,融合不同技術棧

前後端完全分離的適用性

適用於有一定的技術支撐的團隊,不能爲了分離而分離

前端獨立部署擴展

五、Node作爲服務端

Node和serverless

Serverless在2019年於國內開始嶄露頭角,目前還未大規模應用,但serverless是必然的趨勢。

其作爲一種新型的互聯網架構,直接或間接推動了雲計算的發展,從 AWS Lambda 到阿里雲函數計算,Serverless 一路高歌,同時基於 Serverless 的輕量計算開始登錄雲計算的舞臺。

Serverless的核心是faas,函數即服務,解決了傳統BFF資源成本高,運維成本高,開發成本高,難以適應需求變化快等問題和痛點,讓開發者能更專注於業務邏輯,其他的底層資源和運維工作已經全部封裝。

Node實現serverless

使用Serverless框架搭建faas環境,ServerLess 框架是一個使用 Node.js 編寫的 CLI 工具,開發者無需關注底層資源即可部署完整可用的 Serverless 應用架構

之後開發者只需要根據業務編寫相關的function,部署到在雲計算平臺上即可。

已經使用serverLess的平臺

總結:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章