1樓:安徽新華電腦專修學院
首先,先分清楚前後端的工作
前端的工作:實現整乙個前端頁面以及互動邏輯,以及利用ajax與nodejs伺服器(中間層)互動
後端的工作:提供api介面,利用redis來管理session,與資料庫互動
我們專案的整乙個架構如下:
接下來進入正題,如何實現前後端分離
一般來說,要實現前後端分離,前端就需要開啟乙個本地的伺服器來執行自己的前端**,以此來模擬真實的線上環境,並且,也是為了更好的開發。因為你在實際開發中,你不可能要求每乙個前端都去搭建乙個java(php)環境,並且在java環境下開發,這對於前端來說,學習成本太高了。但如果本地沒有開啟伺服器的話,不僅無法模擬線上的環境,而且還面臨到了跨域的問題,因為你如果寫靜態的html頁面,直接在檔案目錄下開啟的話,你是無法發出ajax請求的(瀏覽器跨域的限制),因此,你需要在本地執行乙個伺服器,可是又不想搭建陌生而龐大的java環境,怎麼辦法呢?
nodejs正好解決了這個問題。在我們專案中,我們利用nodejs的express框架來開啟乙個本地的伺服器,然後利用nodejs的乙個http-proxy-middleware外掛程式將客戶端發往nodejs的請求**給真正的伺服器,讓nodejs作為乙個中間層。這樣,前端就可以無憂無慮的開發了
由於前後端分離後,前端和後台同時開發時,就可能遇到前端已經開發好乙個頁面了,可是卻等待後台api介面的情況。比如說a是負責前端,b是負責後台,a可能用了一週做好了基本的結構,並且需要api介面聯調後,才能繼續開發,而此時b卻還沒有實現好所需要的介面,這種情況,怎麼辦呢?在我們這個專案裡,我們是通過了mock來提供一些假資料,我們先規定好了api介面,設計出了一套api文件,然後我們就可以通過api文件,利用mock(http:
//mockjs.***)來返回一些假資料,這樣就可以模擬傳送api到接受響應的整乙個過程,因此前端也不需要依賴於後端開發了,可以獨立開發,等到後台的api全部設計完之後,就可以比較快速的聯調。
如何在開發時部署和執行前後端分離的javawe
2樓:以道教育
在開發中大型的javaee專案時,前後端分離的框架逐漸成為業界的主流,傳統的單機部署前後端在同乙個專案中的工程專案越來越少。這類javaweb專案的後端通常都採用微服務的架構,後端會被分解為諸多個小專案,然後使用dubbo+zookeeper或者springcloud來構建微服務,前端則會是乙個單獨的專案,前台的請求通過微服務來呼叫。但是,不同與傳統的web專案,這類前後端分離的專案如何在開發中部署和執行呢?
主要有兩種方案:1.在本地通過nginx來處理這些靜態資源。2、將靜態資源統一放入乙個javaweb應用中,並將自動生成的war包隨後端專案一期丟入tomcat。下面詳細介紹
一、使用nginx來訪問靜態資源。
在本地安裝nginx並且修改nginx.conf,修改相關配置,將web訪問的埠的資源進行更改,配置如下:
listen物件改為你本地的tomcat訪問埠,最下面location中的root改為你前端專案中靜態資源的位置,這樣就可以實現只部署後端的專案就能訪問前端的頁面了。
二、將前端專案轉換為動態的web專案,隨後端專案一起丟入tomcat
這個方案省去了在本地安裝和配置nginx,但是也只適用於開發階段專案的部署執行和除錯,真正在生產環境通常前後端專案會部署在不同的伺服器。
如果是eclipse,可以新建乙個javaweb專案然後將靜態資源放入web或者webcontent目錄下,或者直接先導入前端專案,然後通過 project facts 將專案轉換為dynamic web專案並勾選 js等相關配置。
然後,執行專案時把後端的war包和前端的war包一同新增到 deployment中執行即可。
3樓:建蘭騰詩懷
前端和後台分離,不是完全分離,資料通道還有有的.不管是java或者.***都有後台向前端傳送資料的方式
node js 前後端分離透傳怎麼實現的
4樓:育知同創教育
html中js->發ajax請求->nodejs(restful api)->**http請求->java端(restful api)->讀取資料庫後返回給->nodejs->再**給html->html
也就是你java端把什麼之前生成html的部分剝離,而只留提供資料的api介面,如果是單頁應用的話,node層僅僅是做**,提供靜態資源,或做一些access的驗證工作,不留具體業務邏輯。如果是伺服器端渲染,則node還需要承擔render檢視的工作。
web開發中,什麼是前後端分離
5樓:廣州啟匯營銷策劃****
優秀的web架構,必定會應用一些分層設計的思想,這樣可以讓系統開發起來更靈活,同時後期維護也比較方便。
前端的頁面基本都是使用 javascript 的富戶端頁面,主要應用的框架用,jquery、jquery ui、knockout js、durandal。
自己封裝的 ui 元件,後端的主要採用到的技術有 odata、mvc、linq to sql 以及自己寫的乙個許可權管理元件,資料庫採用的是 sql server 2005。
如何處理好前後端分離的 api 問題
6樓:笑喘是病得抽
意義很大,但是你的問題本身認識有偏差。
對於前後端分離,認識上有個誤區,那就是很多人自稱:老早就分離了,全ajax,使用angular或者什麼什麼就可以了。
這個說法是不合適的,打個比方,別人問的是「如何解決家禽把蛋生在水草邊的問題?」,但實際上人家養的是鴨子,答題的卻是養雞的,所以回答「不讓去水邊就行了」,這顯然不在點子上。
這兩年業界說的前後端分離,是限於偏展示類的系統(用a代替),而不是應用、管控類web專案(用b代替),在b類專案裡,前後端是天然分離的,對此,除了少部分後端開發人員,基本所有人的認識都是一致的。上一段中這樣回答的人一般都是只做b類專案,在b類專案裡,前後端分離是共識,不需要討論。
那麼,剩下的問題就是討論a類專案的前後端分離了。這個問題的核心在什麼地方呢,在於模板的與資料結合的位置,以及,模板的控制權在誰手裡。經過這兩年的討論,基本上我們可以達成的共識就是:
模板應當由前端人員去控制,主要原因有兩方面:
- 效能優化(尤其是外部資源的管理與釋出,請求合併等等)
- 協作的順暢性(已形成模板的介面片段的返工等問題)
那麼,模板到底應該在什麼地方跟資料結合?
這個問題就比較折騰了,有部分人嘗試像b類專案那樣,使用js模板,然後在瀏覽器端執行,這是存在一些問題的,比如說seo不友好,首屏效能不夠,尤其對於首頁dom量很大的電商類**,差距很明顯。
所以還是得把主要的模板放在服務端來執行。在這個過程中,阿里作了一些嘗試,那就是引入node層,在這一層把模板與資料進行合成,然後瀏覽器拿到的就是生成好的html了,但也不是所有html都是這麼生成好的,還是會有一些內容等到了瀏覽器之後,再用js去載入和生成。
前後端分離必須用到 nodejs嗎
7樓:育知同創教育
angularjs是前段的基於js的mvc框架,nodejs是服務端的js框架,並不存在前後端分離的問題。 簡明的解釋是使用nodejs作為服務端的時候前端不是必須用angularjs的,同樣angularjs也可以搭配php,java等服務端語言使用。
node.js是用於伺服器端,做後台程式的。angularjs是前端框架,主要用於資料繫結,不需要安裝,只要在標籤匯入就能用了。
nodejs怎麼實現前後端分離開發例項
感覺php的話必要性不大啊,這麼搞主要的原因是頁面邏輯層前端來寫,但是得使用java的velocity模版,問題是前端不熟悉java 後端不熟悉html js,不用velocity完全使用angular等又回帶來快取利用 seo 效能的問題 所以用node在中間擋一層,後端只做服務,node負責模版...
前後端分離和mvc開發模式哪個好
個人建議前後端分離,稍微大一點的團隊合作開發的時候一般都是使用這種方式。現在比較流行的angularjs等,後台可以考慮用mvc web api 什麼是前後端,有沒有前後端分離,還有如何區分mvc與前後端分離 1 前後端分離的意思是,前後端只通過 json 來交流.同意其他幾位,json 只是一種可...
前後端分離開發是個什麼概念,跟我們用的框架有什麼不同啊
就是後端給 api 客戶端渲染。完全的前後端分離也是一步一步發展過來的。web開發中,什麼是前後端分離 想用spring做前後端分離的開發,到底該如何做 分布式開發,和前後端分離是乙個意思嗎?舉個例子,系統a中有業務層和dao層,系統b中有前端頁面和控制層 你們web開發是完全前後分離的嗎 看情況吧...