首页 > 其他分享 >基于 Clouflare+D1 的web访客统计服务

基于 Clouflare+D1 的web访客统计服务

时间:2024-08-10 13:56:59浏览次数:7  
标签:webviso web const Clouflare analytics npm data D1

项目地址

https://github.com/yestool/analytics_with_cloudflare

部署步骤

安装依赖

npm install -g wrangler
npm install hono

创建 D1 数据库:web_analytics

数据库名称为 web_analytics,与 package.json 内保持一致

npx wrangler d1 create web_analytics

运行后控制台显示

✅ Successfully created DB 'web_analytics' in region APAC
Created your new D1 database.

[[d1_databases]]
binding = "DB" # i.e. available in your Worker on env.DB
database_name = "web_analytics"
database_id = "xxx"

修改 wrangler.toml 中的 database_id

初始化 D1 数据库的表结构

npm run initSql

绑定自定义域名

routes = [{ pattern = "analytics.xbxin.com", custom_domain = true }]

发布

npm run deploy

使用

<template>
  本页访问人次:<span>{{webviso.uv}}</span><br>
  本页访问人数:<span>{{ webviso.pv }}</span>
</template>

<script setup lang="ts">
import { ref, onMounted } from 'vue';

const webvisoLoaded = ref(false);
const webviso = ref({
  uv: '',
  pv: '',
});

const loadWebviso = async () => {
  const apiUrl = 'https://analytics.xbxin.com/api/visit'

  const requestData = {
    url: window.location.pathname,
    hostname: window.location.hostname,
    referrer: document.referrer,
    pv: true,
    uv: true,
  }

  try {
    const response = await fetch(apiUrl, {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      body: JSON.stringify(requestData),
    })

    if (response.ok) {
      const data = await response.json();
      webviso.value = data.data;
    } else {
      console.error('Error loading analytics data:', response.statusText);
    }
  } catch (err) {
    console.error('Error loading analytics script:', err);
  }
}

onMounted(() => {
  loadWebviso();
});
</script>

标签:webviso,web,const,Clouflare,analytics,npm,data,D1
From: https://blog.csdn.net/weixin_60451356/article/details/141090087

相关文章

  • 『SD』Stable Diffusion WebUI 安装插件(以汉化为例)
    前言本文简介StableDiffusionWebUI是允许用户自行安装插件的,插件的种类有很多,有将页面翻译成中文的插件,也有提示词补全插件,也有精细控制出图的插件。以汉化为例,StableDiffusionWebUI默认是英文的,我们只需装个汉化插件然后重启一下项目就能把页面变成中文了。安装......
  • 425.响应式的境外旅游私人订制网站 大学生期末大作业 Web前端网页制作 html+css+js
    目录一、网页概述二、网页文件 三、网页效果四、代码展示1.html2.CSS3.JS五、总结1.简洁实用2.使用方便3.整体性好4.形象突出5.交互式强六、更多推荐欢迎光临仙女的网页世界!这里有Web前端网页制作的各行各业的案例,样式齐全新颖,并持续更新!感谢CSDN,提供了这......
  • pybind11使用入门
    代码仓库SeamlessoperabilitybetweenC++11andPython.pybind11isalightweightheader-onlylibrarythatexposesC++typesinPythonandviceversa,mainlytocreatePythonbindingsofexistingC++code.官方文档pybind11安装pybind11软件包,执行如下命令:......
  • 2024,该放弃框架来实现 Web 布局了
    在这里,我并不想评论CSS框架和库的好坏,但一个不争的现实就是,很多Web开发者很容易在众多的CSS框架库中迷失方向。甚至,每个框架和库都向Web开发者承诺,将提供更简单的样式和更流畅的Web布局。然而,在当下,现代CSS特性提供了更简单和更灵活的方法,你完全可以不依赖任何CSS......
  • WebDAV服务不能上传大文件,文件超过50M报错[0x800700DF]怎么办?
    这个问题需要分别从服务端和客户端解决。1.Windows客户端解除50M文件限制,Windows访问Webdav服务时,大于50M文件提示错误[错误:0x800700DF]部署了webdav,Windows10映射网络磁盘,传输文件超过大约50MB的文件会弹出“0x800700DF:文件大小超过允许的限制,无法保存”,或者报错:“无法读......
  • WEB渗透Web突破篇-WAF绕过
    SQL注入分块传输https://github.com/c0ny1/chunked-coding-converter跑注入点被拦截使用分块传输,右键选择使用SQLMAP跑注入>pythonsqlmap.py-r1.txt--batch--proxy=http://127.0.0.1:8080--dbs自动提供可用的tamperAtlasGitHub-m4ll0k/At......
  • WebSocket入门
    1介绍WebSocket是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工通信——浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接,并进行双向数据传输。HTTP协议和WebSocket协议对比:HTTP是短连接WebSocket是长连接HTTP通信是单向的,基于请求响......
  • 基于腾讯云EdgeOne的自适应webp转换
    基于腾讯云EdgeOne的自适应webp转换EdgeOne是腾讯云提出的边缘计算相关产品,和CloudFlare的小黄云类似,实际上大致等于CDN+安全防护,同时它还提供了边缘函数来提供我们使用,我们可以借助边缘函数实现一些功能,比如说自动将请求的png或jpg图片转换成webp,从而节省流量,加快网站的访问速度......
  • 从maven到SpringBootWeb入门
    Maven-SpringBootWeb入门maven安装安装步骤测试配置Maven环境当前工程全局IDEA创建Maven项目IDEA导入Maven项目依赖管理依赖配置依赖传递排除依赖 依赖范围生命周期Web入门SpringBootWeb快速入门HTTP协议请求协议响应协议Tomcat基本使用maven......
  • .net core web 启动过程(1)
    1.要了解启动过程,先介绍 IHostingStartup和IStartup接口///<summary>///Representsplatformspecificconfigurationthatwillbeappliedtoa<seecref="IWebHostBuilder"/>whenbuildingan<seecref="IWebHost"/>.///</summary......