zoukankan      html  css  js  c++  java
  • node代理网络请求

    server.js

     1 var express = require('express')
     2 var axios = require('axios')
     3 var port = 9000;
     4 var app = express();
     5 
     6 var allowCrossDomain = function (req, res, next) {
     7   res.header('Access-Control-Allow-Origin', '*');
     8   next();
     9 };
    10 
    11 app.use(allowCrossDomain);
    12 
    13 var apiRoutes = express.Router()
    14 apiRoutes.get('/getData', function (req, res) {
    15   var url = req.query.reqUrl;
    16   axios.get(url, {
    17     headers: {
    18       authority: 'https://xx.xx.xx/',
    19       cookie: 'xxxxxxxxxxxxx'
    20     },
    21     params: req.query
    22   }).then((response) => {
    23     res.json(response.data)
    24   }).catch((e) => {
    25     console.log(e)
    26   })
    27 })
    28 
    29 app.use(apiRoutes)
    30 
    31 module.exports = app.listen(port, function (err) {
    32   if (err) {
    33     console.log(err)
    34     return
    35   }
    36   console.log('Listening at http://localhost:' + port + '
    ')
    37 })

    index.html

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
      <meta charset="UTF-8">
      <title></title>
      <link rel="stylesheet" href="layui-v2.4.5/css/layui.css">
    </head>
    
    <body>
      <div class="container">
        <div class="input-box" style="padding:20px 20px 0 20px;">
          <form class="layui-form layui-row" lay-filter="">
            <div class="layui-input-inline layui-col-xs12 layui-col-sm6 layui-col-md3 layui-col-lg3">
              <input type="text" name="title" required lay-verify="required" placeholder="请输入relatedId" autocomplete="off" class="layui-input" id="input" value="5624669de0f55a5286003b95">
            </div>
            <div class="layui-input-inline" style="padding:5px 0 0 20px;">
              <div class="layui-btn layui-btn-sm layui-btn-normal" id="confirm">搜索</div>
            </div>
          </form>
        </div>
        <div class="table-box" style="padding:0 20px;">
          <table class="layui-table">
            <colgroup>
              <col width="400">
              <col>
            </colgroup>
            <thead>
              <tr>
                <th>错误摘要</th>
                <th>应用版本</th>
                <th>最近发生时间</th>
                <th>最后发生时间</th>
                <th>错误次数</th>
                <th>影响用户数</th>
              </tr>
            </thead>
            <tbody id="templateTbody"></tbody>
          </table>
        </div>
      </div>
      <script id="tmpl" type="text/html">
        {{#  layui.each(d.data, function(index, item){ }}
            <tr>
              <td>{{item.summary}}</td>
              <td>{{item.appVersion}}</td>
              <td>{{item.firstHappenTime}}</td>
              <td>{{item.lastHappenTime}}</td>
              <td>{{item.happenTimes}}</td>
              <td>{{item.affectUsers}}</td>
            </tr>
          {{#  }); }}
          {{#  if(d.data.length === 0){ }}
              暂无数据
          {{#  } }} 
      </script>
      <script src="layui-v2.4.5/layui.js"></script>
      <script src="index.js"></script>
    </body>
    
    </html>

    index.js

     1 layui.use(['form', 'jquery', 'laytpl', 'layer'], function() {
     2     var form = layui.form;
     3     var $ = layui.jquery;
     4     var laytpl = layui.laytpl;
     5     var layer = layui.layer;
     6 
     7     $('#confirm').on('click', function() {
     8         var id = $.trim($('#input').val());
     9         if (!id) {
    10             layer.msg('请输入relatedId');
    11             return;
    12         };
    13         var reqUrl = getUrl(id);
    14         sendReq(reqUrl);
    15     })
    16 
    17     function getUrl(id) {
    18         var date = new Date().toLocaleString();
    19         var date1 = date.split(' ')[0].replace(///g, '');
    20         var date2 = date.split(' ')[1].replace(/:/g, '');
    21         return `https://mobile.umeng.com/ht/api/qb/v1/error/search?versions=&startDay=${date1}+000000&endDay=${date1}+${date2}&exValue=&exField=abstract&relatedId=${id}&errorClass=1&pageSize=120&page=1`;
    22     }
    23 
    24     function sendReq(reqUrl) {
    25         console.log(reqUrl);
    26         $.ajax({
    27             url: 'http://127.0.0.1:9000/getData',
    28             data: { reqUrl: reqUrl },
    29             success: function(ret) {
    30                 if (ret.code === 200) {
    31                     var data = ret.data;
    32                     data.data = normalize(data.data);
    33                     var getTpl = tmpl.innerHTML;
    34                     var view = document.getElementById('templateTbody');
    35                     laytpl(getTpl).render(data, function(html) {
    36                         view.innerHTML = html;
    37                     });
    38                 } else {
    39                     layer.msg('请求错误:' + ret.msg);
    40                 }
    41             }
    42         })
    43     }
    44 
    45     function normalize(data) {
    46         $.each(data, function(i, e) {
    47             e.firstHappenTime = new Date(e.firstHappenTime).toLocaleString();
    48             e.lastHappenTime = new Date(e.lastHappenTime).toLocaleString();
    49             if (e.summary.indexOf('
    ') > -1) {
    50                 e.summary = e.summary.slice(0, e.summary.indexOf('
    '));
    51             }
    52         })
    53         return data;
    54     }
    55 
    56     Date.prototype.toLocaleString = function() {
    57         function addZero(num) {
    58             if (num < 10)
    59                 return "0" + num;
    60             return num + '';
    61         }
    62         return this.getFullYear() + "/" + addZero(this.getMonth() + 1) + "/" + addZero(this.getDate()) + " " +
    63             addZero(this.getHours()) + ":" + addZero(this.getMinutes()) + ":" + addZero(this.getSeconds());
    64     };
    65 })
  • 相关阅读:
    Servlet学习之http
    初识JDBC-篇四
    初识JDBC-篇三
    正则表达式简单应用3
    正则表达式简单应用2
    正则表达式简单应用1
    反射的简单应用三
    反射的简单应用2
    反射简单的应用
    TCP协议应用--上传文件
  • 原文地址:https://www.cnblogs.com/dora-zc/p/10223968.html
Copyright © 2011-2022 走看看