解决本地googleapis 谷歌统计 nodejs 遇到 ECONNRESET和 ETIMEDOUT

文章讲述了在本地开发环境中通过谷歌分析接口获取网站访问数据遇到的问题,提出了两种解决方案:一是将服务部署到外部服务器,虽然方便管理但影响本地调试;二是使用本地代理,通过设置HTTP_PROXY环境变量实现,最后利用jQuery-jvectormap展示数据。
摘要由CSDN通过智能技术生成

在本地通过谷歌分析接口, 获取网站的访问量统计, 用于在管理端面板世界地图显示

获取分析数据的部分代码,这部分很简单示例有

// 获得前10个页面浏览量与页面标题在过去30天
const {BetaAnalyticsDataClient} = require('@google-analytics/data');
const analyticsDataClient = new BetaAnalyticsDataClient();
const [response] = await analyticsDataClient.runReport({
  property: `properties/${propertyId}`,
  dateRanges: [
    {
      startDate: "30daysAgo",
      endDate: "today"
    }
  ],
  dimensions: [
    {
      name: "pageTitle"
    },
    {
      name: "pagePath"
    }
  ],
  metrics: [
    {
      name: "screenPageViews"
    }
  ],
  limit: 20,
  MetricOrderBy: [
    {
      desc: true,
      metric: {
        metricName: "value"
      }
    }
  ]
});

由于墙的原因,本地无法访问所以调用时会报错

Error: 14 UNAVAILABLE: No connection established. Last error: connect ETIMEDOUT 142.251.42.234:443 (2024-02-19T06:15:57.073Z)

方案一: 部署到外部服务器

部署之后能用, 但是缺点也很明显, 本地开发调试什么的都很不方便

方案二: 本地代理

代码里加入下面一行代码

process.env.HTTP_PROXY = 'http://proxyhost:port'; // 为 non-SSL request做代理

我是在app.js判断是否为本地环境,是才进行代理

if (process.env.NODE_ENV == "local") {
  process.env.HTTP_PROXY = "http://127.0.0.1:7890";
}

每个代理工具不同,我在右下角图标 -> 右键 -> 复制环境变量
得到
export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890

最终效果

用jquery-jvectormap显示数据
在这里插入图片描述

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谢泽的网络日志

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值