nodeJS(express4.x)+vue(vue-cli)構(gòu)建前后端分離實(shí)例(帶跨域)
準(zhǔn)備工作:
1.安裝nodejs ---還用我教了?
2.安裝依賴包express4.x 點(diǎn)這里》》》nodeJS搭建本地服務(wù)器
3.安裝vue-cli腳手架 點(diǎn)這里》》》vue-cli構(gòu)建vue項(xiàng)目
這里強(qiáng)調(diào)一下,express是后端服務(wù)器,它是一個(gè)獨(dú)立的服務(wù)器,vue啟動(dòng)的是前端服務(wù)器,vue-cli中已經(jīng)集成了一個(gè)小型的express,這兩個(gè)服務(wù)器是分開放的,但是它們都是基于nodejs的。
nodeJS部分:這里我已經(jīng)認(rèn)為你搭建好了express服務(wù)器,并且能在瀏覽器中訪問到
1.在express目錄下,安裝cors包1.npm install cors --save
2. //這里的--save是指把cors依賴注入到package.json中
2.在app.js中配置:開啟cors //就如我下圖配置的一樣
//............. var cors = require('cors'); //............... app.use(cors({ origin:['http://localhost:8080'], methods:['GET','POST'], alloweHeaders:['Conten-Type', 'Authorization'] }));
3.在routes/index.js中配置一條路由映射
router.post('/first', function(req, res, next) { res.json({name:'aaa',pwd:'123'}); });
說明:到這里后端就配置完了,我這里寫了假數(shù)據(jù),沒有訪問數(shù)據(jù)庫(kù),我只讓返回了一個(gè)json對(duì)象 {name:'aaa', pwd:'123'}
只要是 http://localhost:8080/first 這個(gè)路由過來的訪問都可以拿到這個(gè)返回的對(duì)象了
這里需要說明的是,后臺(tái)自己本來的域名下也是可以訪問到這個(gè)路由的,就是說明這個(gè)域名是可以共享的。
--重啟服務(wù)器
Vue部分:這里我已經(jīng)認(rèn)為你搭建好了vue服務(wù)器,并且能在瀏覽器中訪問到
說明:我們這里引入了jquery,目的是為了用他的ajax插件,這里有同學(xué)可能會(huì)問了,為什么不用vue-resource?
vue-resource: 是Vue.js的一款插件,它可以通過XMLHttpRequest或JSONP發(fā)起請(qǐng)求并處理響應(yīng)。也就是說,$.ajax能做的事情,vue-resource插件一樣也能做到,而且vue-resource的API更為簡(jiǎn)潔。另外,vue-resource還提供了非常有用的inteceptor功能,使用inteceptor可以在請(qǐng)求前和請(qǐng)求后附加一些行為,比如使用inteceptor在ajax請(qǐng)求時(shí)顯示loading界面
我告訴你原因: 因?yàn)槲也粫?huì),就是這么有底氣!還有,我再聲明,如果這個(gè)項(xiàng)目里再結(jié)構(gòu)方面有哪里不合理,還請(qǐng)請(qǐng)賜教,就是這么虛心求教
1.打開vue項(xiàng)目的入口文件
2.在入口文件中編寫代碼 這里可能有人問為什么不用模塊化開發(fā),我在說一遍,我現(xiàn)在還不會(huì) -_- | -_-| -_-|
這里我用了百度靜態(tài)資源庫(kù)的cdn加載
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> <button>獲取json</button> <script> $('button').click(function(){ $.ajax({ type:'POST', url:'http://localhost:3000/first', headers:{ "Conten-Type":"http://localhost:3000/first" }, success:function (backDate) { // body... console.log(backDate); } }) }) </script>
3.因?yàn)関ue項(xiàng)目是自動(dòng)刷新的,如果沒有,你就手動(dòng)刷新一下,因?yàn)槲疫€沒搞明白它什么在哪些情況下會(huì)自動(dòng)刷新,再不行就重啟服務(wù)器,哈哈
這是現(xiàn)在的前端頁面,我們點(diǎn)擊以后看控制臺(tái),因?yàn)樵赼jax請(qǐng)求里寫的,我們?cè)谠L問成功success時(shí),打印出傳回來的數(shù)據(jù)
至此,我們的前后端入門就到此結(jié)束了。。。
我們從localhost:8080端口訪問到了localhost:3000端口,并進(jìn)行了交互,各位,像前后端分離進(jìn)軍吧!
參考:
Vue.js——基于$.ajax實(shí)現(xiàn)數(shù)據(jù)的跨域增刪查改
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
NodeJS使用formidable實(shí)現(xiàn)文件上傳
這篇文章主要為大家詳細(xì)介紹了NodeJS使用formidable實(shí)現(xiàn)文件上傳的相關(guān)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10node.js中的querystring.parse方法使用說明
這篇文章主要介紹了node.js中的querystring.parse方法使用說明,本文介紹了querystring.parse的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12Node.js API詳解之 module模塊用法實(shí)例分析
這篇文章主要介紹了Node.js API詳解之 module模塊用法,結(jié)合實(shí)例形式分析了Node.js API中module模塊基本功能、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-05-05npm安裝sharp出現(xiàn)的問題詳解(安裝失敗的問題及解決)
這篇文章主要給大家介紹了關(guān)于npm安裝sharp出現(xiàn)的問題(安裝失敗的問題及解決)的相關(guān)資料,sharp包是基于node.js的高性能圖片處理器,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11node.js中的http.response.end方法使用說明
這篇文章主要介紹了node.js中的http.response.end方法使用說明,本文介紹了http.response.end的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12Node與Python 雙向通信的實(shí)現(xiàn)代碼
最簡(jiǎn)單粗暴的通信方式是 Nodejs調(diào)用一下 Python 腳本,本文詳細(xì)介紹了Nodejs與Python 雙向通信的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07