用代理服务器做接口整合大大减少http请求

代理服务器拿到后台数据以后,整体发送给客户端,客户端一次性将数据展示给视图123,这样显示的时候几乎是同步显示三个视图模块。体验比较好。 这样比直接从客户端进行三次请求过来要节省很多时间,客户端对服务端发起请求到回应这个过程很复杂。而且易于数据整合。

如何一键生成koa2

一. 安装

全局安装(支持koa1.2和koa2) npm install koa-generator -g

koa1.2生成test项目并下载依赖 koa test cd test npm install

koa2生成test项目并下载依赖 koa2 test cd test npm install

二. 运行 npm start 在package.josn配置相关项目信息

目录

直接使用koa2的生成器生成了这么个简单快速的项目,在里面只需要在public静态管理文件夹扔一个index静态文件,用于客户端请求接口

html内容

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div>
接口整合
</div>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script>
    axios.get('/json')
        .then(function (response) {
            console.log(response);
        })
        .catch(function (error) {
            console.log(error);
        });
</script>
</body>
</html>
复制代码

路由模块处理

const router = require('koa-router')()
//下载个koa2-request 用于请求接口 ,我这里就把中间服务器和代理服务器都用了一个,只是为了说明原理所以就不另外起一个了。
var koa2Req = require('koa2-request');
//koa2Req也是我写这个时候临时下的只支持80 
router.get('/', async (ctx, next) => {
  await ctx.render('index', {
    title: 'Hello Koa 2!'
  })
});
router.get('/num1', async (ctx, next) => {
  ctx.body = '我是接口1'
});
router.get('/num2', async (ctx, next) => {
  ctx.body = '我是接口2'
});
router.get('/num3', async (ctx, next) => {
  ctx.body = '我是接口3'
});
//整合三个
let ip='http://192.168.0.131/'
//项目启动以后换成你自己ip就好
async function num(){
 var res = await koa2Req(ip+'num1');
 var res2 = await koa2Req(ip+'num2');
 var res3 = await koa2Req(ip+'num3');
 var res4= res.body+res2.body+res3.body;
 return res4;
}
//接口一同返给前台。
router.get('/json', async (ctx, next) => {
 let re = await num();
     ctx.body = {
    body: re
  }
})

module.exports = router
复制代码

这样就可以减少客户端一次性进行多次http请求,节省了很多请求时间和效率,便于数据处理,加入页面有很多模块,这些模块的数据在客户端分成多个接口来请求,那效率就慢很多了。服务器对服务器请求,速度是比客户端发起请求快很多。任何框架或者不需要框架都可以实现。

转载于:https://juejin.im/post/5d00a4e16fb9a07ef37660c7

猜你喜欢

转载自blog.csdn.net/weixin_33736832/article/details/93173936