前面2期都講得是瀏覽器端的東西比較多,包括Webpack,雖然是Node處理的,可是仍是瀏覽器端用的多,對於如今的前端開發來講,不懂一點服務端的東西,簡直沒辦法活,通常的招聘要求都會加上要懂一門服務端的語言,例如:PHP,Java之類的啦。如圖所示:php
因此咱們這期就講Node的東西。css
Node在前端領域使用最爲普遍的就是工具鏈了,一期提到的構建工具都是Node寫的,固然還有其餘不少工具,好比:京東工程化,百度開源構建工具FIS3,微信發佈的工做流工具等等一系列前端工具都是用Node寫的。普遍的說,我認爲一期提到的編輯器也算工具鏈的中的一種,Atom,vs code,Brackets都和Node密不可分。我我的感受,Node的發展,實際上大大解放了前端的生產力,對於其餘的服務端語言的依賴基本能夠說降到最低,能夠依據本身的須要編寫工具來完成技術目標。html
這方面你們也能夠本身來產出下,例如我本身寫了個小工具供本身使用:
vuejs 格式化 Atom插件
如今下載量也不錯,有2000多了,還有好幾個issues沒有處理,哭!!前端
對於不少FE來講,要搭建一個後端環境非常麻煩,並且不熟悉,容易出錯(java,ruby,php),最糟的是本身不懂,出錯了徹底不會調試,你的表情此時是這樣的:vue
那麼在1三、14年的時候,淘寶的前端團隊,開始連續發文,先後端分離的思考和實踐系列文章,提到了中途島計劃,也就是把Node做爲前端和服務端的中間層,也就是這個架構,java
從這種圖,不難看出,Node取代原來php,java乾的一部分事情,也就是咱們常說的MVC框架中的VC基本都給Node來幹,FE乾的事情更多了,能掌握的東西多了,意味着對於本身更加靈活,能夠考慮更多的組件化,工程化,性能監控,數據分析的事情。node
這方面的實踐你們能夠參考美團這邊的圖文:git
美團酒店Node全棧開發實踐github
Full Stack developer 是近年來熱炒的一個概念,究其緣由,跟Node的火熱不無關係,早些年講,一我的(大牛不算普通人)既要精通java又要精通js,html,css仍是很困難,不少思惟都不太同樣,分開也很正常,而Node的出現,爲不少比較厲害的前端提供了切入到服務端的機會,語言層面的問題不在是難點,重要的對服務端的知識點的熟悉程度。Node的最後一個大招就是替換一些傳統的服務端語言,例如php,ruby,java等,在業務層上面使用Node來開發服務端徹底不成問題。web
例如: uber的調度系統幾乎都是用 node.js 編寫的
這方面的文章也有不少了,你們能夠本身去搜搜看,包括各類框架,還有各類開源系統,均可以找到。固然也還有各類各樣的坑和問題以待你們去踩和解決。
咱們公司來講的話,三板斧基本都用上了,打包構建自不用談,基本每一個前端都會用到,第二板斧咱們公司已經基本切換過來了,年後3月啓動,目前是全部的web頁面都是Node做爲中間層,替換了php的渲染,中間天然有不少的困難要克服,但總體上來講開發的效率仍是大大提高,不須要在配置php的環境,也不用在關心各類環境的依賴,總體上本身的一個獨立的服務,使用接口的形式和服務端通訊。
那麼三板斧爲什麼會用到,主要是目前國內最多見的mobile的web頁面,基本在微信裏面流傳,而後這些頁面還須要必定的數據交互,並且這種頁面的特色就是短平快,不須要那麼嚴謹,這種頁面特別適合前端本身一擼到底,先後端通吃,接上 MongoDB當作數據庫,基本兩三天以內就能開發一個活動頁面出來,不須要對其餘服務有任何依賴,包括微信受權均可以本身搞定,工做量其實比對接其餘語言服務大不了多少,某些方面,我我的認爲還減小了不少的溝通成本。
先說說這個插件作什麼的: 主要是自動的加載express框架下面的路由,省得一個一個路由須要手寫。
一般咱們在express框架下面,寫路由的時候都是一個一個的手寫,而後在app.js裏面去一個一個引用,通常是這樣子的
那麼好一點的狀況,是這樣子的,分散每個相同名字的路由到文件中,而後引用文件在app.js裏面。
但實際上你可能在項目中路由狀況是這樣子的
你有什麼想法?
雖然這樣子也就是一個文件多兩行代碼,我仍是不爽,我爲何要由於同一個規則而去多寫這兩個代碼,並且10個兩行,就是20行,原則上,能用機器乾的事情,就不人幹,並且PHP的一些MVC框架能夠自動加載路由,他們會有一個文件夾的分層,很明顯,路由都放到Controller文件夾下,而後根據路由名來匹配文件名的相應action,依據這個我本身就擼了一個express的自動加載路由,而後考慮了下一些特殊狀況,作了點配置,不過目前只是支持一級目錄,沒有考慮多級目錄狀況,有須要能夠本身添加,或者給我提issues。
本篇文章主要講的是關於Node的東東,它的使用方向,更偏向結合前端的使用,並不是是很深刻的Node原理,也算是給不少前端解惑下,爲何要使用Node,以及如何使用Node,不要盲目的聽信別人的建議,須要結合本身項目狀況,技術水平,以及團隊配比。
更多的Node的使用細節和技巧建議關注:
下一篇咱們開啓如何結合Webpack和express 搭建一個開發環境和項目目錄