在vue中並無方法讓咱們進行先後端數據交互,可是有我的寫了個插件叫
vue-resource
,這個插件可讓咱們正常的進行先後端數據交互
vue-resource
下載下載代碼:html
cnpm/npm/bower install vue-resource
下載完以後就能夠設定一個事件讓登錄註冊觸發
<script src="vue-resource.js"></script>
前端
html部分: 用戶名:<input type="text" v-model="user"><br/> 密碼:<input :type="passwordBtn" v-model="password"><br/> <input type="button" value="submit" @click="login"> js部分: new Vue({ el:'body', data:{ user:'', password:'', }, methods:{ login:function(){ console.log(this.$http); } } })
vue-resource
插件的鏈入,那麼console.log(this.$http);
就會失效,控制檯顯示undefined,由於$http
方法是由這個插件賦予的vue-resource
插件的用法$http
get/post
示範代碼接上文,默認在方法內開始寫:vue
login():function{ this.$http.get('http://localhost:****',{ user:this.user, pass:this.pass }); }
then
方法加入一個報錯判斷,方法內傳入兩個處理函數{'ok':1}
data
屬性是咱們所須要的,是咱們自定義send
過來的,ok
則是咱們自定義的內容login():function{ this.$http.get('http://localhost:****',{ user:this.user, pass:this.pass }).then(function(dat){ if(dat.data.ok==1){ alert('登錄成功'); }else{ alert('登錄失敗'); } },function(){ console.log('傳輸失敗'); }); }
then
方法的catch
方法,效果同樣login():function{ this.$http.get('http://localhost:****',{ user:this.user, pass:this.pass }).then(function(dat){ if(dat.data.ok==1){ alert('登錄成功'); }else{ alert('登錄失敗'); } }).catch(functino(){ console.log('傳輸失敗'); }); }
要導入的模塊有:node
cnpm/npm/bower
這幾個包管理器var express=require('express'); var bodyParser=require('body-parser'); var server = express();
$http
方法內的地址用到server.listen(****);
git
server.use(bodyParser.urlencoded());
express
server.use(express.static('./'));
npm
var json = { 'bill':'111' }
get
,因此這裏經過req.query
來解析前端發送到後端的數據user
值做爲json的key
值或獲得的json.user
的value值恆等於前端的pass
值則發送一個json數據,不然發送另外一個json數據,這裏發送的數據將在前端then
方法的第一個參數傳入使用server.use('/a',function(req,res){ console.log(req.query); if(json[req.query.user]==req.query.pass){ res.send({ok:1,'msg':'登錄成功'}); }else{ res.send({ok:0,'msg':'用戶名或密碼錯誤'}); } })
key:value
,能夠用中括號[]
代替.
來訪問到key所對應的value。key
對應的是bill
,value
對應的是111
,req.query.user
得到到的前端數據是用戶輸入雙向綁定到了vue實例的data內的user,req.query.pass
獲取到的數據是用戶輸入雙向綁定到data 的passjson[bill]==111
=》111==111
json