emmm...好久没写博客了,都忘了该怎么开始。

那就先说下mockjs。因为一些原因,导致后台接口没有数据,那么我们就开始自己造数据,使用的是比较流行mockjs,根据文档就能简单的配置,然后开始愉快的玩耍了。(真香)

然后某天后台出数据了,又因为某些问题(跨域),导致我又没法愉快的玩耍,嗯,就是这样的,才有了今天这篇博客(口水话)。

使用的是nodejs做跨域代理,非常简单,先贴代码:

 var express = require('express');
var router = express.Router();
var http = require('http'); router.all('*', function(request, response, next) { //代理了所有请求
var content = JSON.stringify(request.body); //转发原味的数据
var options = {
host: 'example.com', //需要代理的域名或者是ip
port: 80, //端口号
path: request.path, //路径
method: 'POST', //请求代理的方法
headers: { //设置一些请求头之类的
'Content-Type': 'application/json',
'Content-Length': content.length
}
};
//开始做代理转发数据
var req = http.request(options, function(res) {
var _data = '';
res.on('data', function(chunk) {
_data += chunk;
});
res.on('end', function() {
//请求完成之后让response对象返回json
response.json(JSON.parse(_data))
});
});
//这个write大概就是发送这个body,以chunk的形式 原文: https://nodejs.org/dist/latest-v10.x/docs/api/http.html response.write(chunk[, encoding][, callback])
req.write(content);
//这次代理结束
req.end();
});

下面说下为什么这样写,最开始是匹配的所有路由,即:

router.all('/path', function(request, response, next) {
//do something
})

后来发现,这样其实太繁琐了,我有多少个接口我就要写多少个'/path',然后我想到了一个*值,这样就匹配到了所有的path,前端发什么,我就代理什么,不管你有没有这个接口,没有当然就报错啦,所以才有上面我的path是request.path。(这里需要一个滑稽的表情)

好了,口水话太多,干货也就一点,还不知道下次更博是啥时候,有点小失落,不过到时候应该是小激动吧。

最新文章

  1. 用Javascript模拟微信飞机大战游戏
  2. 关于 redis、memcache、mongoDB 的对比(转载)
  3. 第三十四章 metrics(2)- 搭建metrics平台
  4. java.io.FileNotFoundException: class path resource [bean/test/User.hbm.xml] cannot be opened because it does not exist
  5. 批量处理csv格式转换成xls
  6. [Drools]JAVA规则引擎 -- Drools 2
  7. WCF技术剖析之十八:消息契约(Message Contract)和基于消息契约的序列化
  8. 手机新闻网站,掌上移动新闻,手机报client,jQuery Mobile手机新闻网站,手机新闻网站demo,新闻阅读器开发
  9. Android Studio常见问题解决
  10. January 16th, 2018 Week 03rd Tuesday
  11. 淘宝bug bug bug
  12. string 常量池 栈 堆
  13. react-native android打包
  14. Python数据分析--Pandas知识点(二)
  15. C#游戏开发中快速的游戏循环
  16. ios中打包
  17. KEIL中常见问题
  18. 联想笔记本thinkpad按F2不能直接重命名
  19. 51nod 1443 路径和树(最短路)
  20. linux查看目录的四种方法(ls只显示目录)【转】

热门文章

  1. C#用正则表达式替换手机中间几位为*号 代码及解析
  2. 记录Datagrid使用的一些事项
  3. ZYNQ DMA驱动及测试分析
  4. 迁移 Emacs 的自定义设置
  5. web前端超出两行用省略号表示
  6. history program(language)
  7. Django REST framework--序列化
  8. Django--Managers
  9. [Leetcode 452] 最少需要射出多少支箭Minimum Number of Arrows to Burst Balloons 贪心 重载
  10. linux c TCP连接通讯