emmm...好久沒寫博客了,都忘了該怎么開始。
那就先說下mockjs。因為一些原因,導致后台接口沒有數據,那么我們就開始自己造數據,使用的是比較流行mockjs,根據文檔就能簡單的配置,然后開始愉快的玩耍了。(真香)
然后某天后台出數據了,又因為某些問題(跨域),導致我又沒法愉快的玩耍,嗯,就是這樣的,才有了今天這篇博客(口水話)。
使用的是nodejs做跨域代理,非常簡單,先貼代碼:
1 var express = require('express'); 2 var router = express.Router(); 3 var http = require('http'); 4 5 router.all('*', function(request, response, next) { //代理了所有請求 6 var content = JSON.stringify(request.body); //轉發原味的數據 7 var options = { 8 host: 'example.com', //需要代理的域名或者是ip 9 port: 80, //端口號 10 path: request.path, //路徑 11 method: 'POST', //請求代理的方法 12 headers: { //設置一些請求頭之類的 13 'Content-Type': 'application/json', 14 'Content-Length': content.length 15 } 16 }; 17 //開始做代理轉發數據 18 var req = http.request(options, function(res) { 19 var _data = ''; 20 res.on('data', function(chunk) { 21 _data += chunk; 22 }); 23 res.on('end', function() { 24 //請求完成之后讓response對象返回json 25 response.json(JSON.parse(_data)) 26 }); 27 }); 28 //這個write大概就是發送這個body,以chunk的形式 原文: https://nodejs.org/dist/latest-v10.x/docs/api/http.html response.write(chunk[, encoding][, callback]) 29 req.write(content); 30 //這次代理結束 31 req.end(); 32 });
下面說下為什么這樣寫,最開始是匹配的所有路由,即:
router.all('/path', function(request, response, next) { //do something })
后來發現,這樣其實太繁瑣了,我有多少個接口我就要寫多少個'/path',然后我想到了一個*值,這樣就匹配到了所有的path,前端發什么,我就代理什么,不管你有沒有這個接口,沒有當然就報錯啦,所以才有上面我的path是request.path。(這里需要一個滑稽的表情)
好了,口水話太多,干貨也就一點,還不知道下次更博是啥時候,有點小失落,不過到時候應該是小激動吧。