koa导出数据为csv文件给前端下载

后端代码

async userActivityExport(ctx) {
    const limit = ctx.query.limit || 2
    const offset = ctx.query.offset || 0
    const UserActivity = ctx.module.db().entity('userActivity')
    
    const findOption = {}
    const ret = await UserActivity.findMany_(findOption)


    const firtCol = Object.keys(ret.data[0])

    let data = [firtCol, ...ret.data.map(item => Object.values(item))]
    
    data = data.map(row => {
      return row.map(cell => {
        if(isNaN(cell) && cell.hasOwnProperty('replace')) {
          cell.replace(/[\r\n]+/g, '')
        }
        return cell
      }).join(',')
    }).join('\n');

    this.send(ctx, data)
  }

前端代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script src="./node_modules/axios/dist/axios.min.js"></script>
  <script>
    axios.get('xxx')
      .then((response) => {
      // 测试数据
      // const data = "id,mobile,email,displayName,password,passwordSalt,isEmailVerified,emailVerifiedTime,isMobileVerified,mobileVerifiedTime,avatar,status,lastLoginTime,currentLoginTime,createdAt,updatedAt,statusUnverifiedTimestamp,statusActiveTimestamp,statusSuspendedTimestamp,statusDeletedTimestamp,profile\n44,+8614333333333,26640947562@proton.me,张三,58f9f85a6414ca9fc9606adb9d0723436d578e71b76294cd77edf5f1df6e4fdb,qyxdtpzakz592kjt,,,,,,unverified,,,Fri Jun 28 2024 01:22:48 GMT+0800 (中国标准时间),,,,,,50\n46,+8614333323333,266409472562@proton.me,22,b80e43fafc280a156faf1c21e9ab08e5154ce1e153695c26e7aebeaa55198c4f,rdq2f2bolcn0oi43,,,,,,unverified,,,Fri Jun 28 2024 02:14:31 GMT+0800 (中国标准时间),,,,,,52\n30,,test2@wisley.ai,唯思狸,f2453005acb9c86b9ed34da965a8eaaaaef299e19278d1a645987bbdb1d74765,7unndrfe2of65dav,,,,,,active,,,Thu Jun 27 2024 06:14:06 GMT+0800 (中国标准时间),,,,,,25\n49,,,222,d64d255836ebd12af63daf01842f0d1a896cdfc3e7e720f59c1d613248ad0df4,vyvfbnzs8zli695v,,,,,,unverified,,,Fri Jun 28 2024 02:16:08 GMT+0800 (中国标准时间),,,,,,56\n50,,,bbbaaa,e6473a62b203919e5389cea2b3bc01b85f9ffaa0670a9eedaff0d59c9ed80613,cvyrny165kq36khf,,,,,,unverified,,,Fri Jun 28 2024 02:32:43 GMT+0800 (中国标准时间),,,,,,57\n51,,,222,ad5ab031d65c07c71f050191a0564b4ec0fa2359e52a64548e4a2a732910a3bf,0q60wm57rxkl57pz,,,,,,unverified,,,Fri Jun 28 2024 02:41:24 GMT+0800 (中国标准时间),,,,,,60\n52,,,3444,dd93fabbc6dff7914d4e689275005b4015ea0bc5eb5790958a17eefdfbcd7561,jieu5ska2ruhetji,,,,,,unverified,,,Fri Jun 28 2024 02:51:55 GMT+0800 (中国标准时间),,,,,,62\n53,,,bbbaaa1,b5a92e309749d1ce7d59bf63bf99b780e1427a3ec7c9aa7e8af8034073b96da7,dq4y4vb9wi7yt6sa,,,,,,unverified,,,Fri Jun 28 2024 02:52:42 GMT+0800 (中国标准时间),,,,,,65\n54,,,4442244,d0b6bd7a774c8ccabdee1e03a9a564e81bfdeac174f6a68fdb6072280cc811bf,zayrowwz04bydh4u,,,,,,unverified,,,Fri Jun 28 2024 02:54:27 GMT+0800 (中国标准时间),,,,,,68\n55,,,bbbaaa1,98dec860ff6f74b61e4604ebd00e4ab0bb8401286f6106379b47fd2982295f61,1swpe4a2e19adawx,,,,,,unverified,,,Fri Jun 28 2024 03:03:16 GMT+0800 (中国标准时间),,,,,,69\n56,,,bbbaaa1,9104ef30d326dd0a5eb13d1941fcb6666115d1c36fc50be62646962696d9f21d,k7gsrxyxyxeuyqh5,,,,,,unverified,,,Fri Jun 28 2024 03:05:55 GMT+0800 (中国标准时间),,,,,,70\n57,,,bbbaaa1,f2b57e80f12448b8041470473b3253b604e7f1b762ad33e413b915f3d7c9335f,cn3k7w9gpsdeo4jz,,,,,,unverified,,,Fri Jun 28 2024 03:07:15 GMT+0800 (中国标准时间),,,,,,71\n24,+8613632262320,developerhjj@163.com,hjj,fc6ebd338acb7820b1b2c678f387c4561829493028441c8bdaada9d2b91421cf,gqybre77i47epxul,,,,,,active,,,Wed Jun 26 2024 06:11:37 GMT+0800 (中国标准时间),Fri Jun 28 2024 08:30:37 GMT+0800 (中国标准时间),,,,,17\n23,+8613632262321,2664097562@qq.com,kyushu,fc6ebd338acb7820b1b2c678f387c4561829493028441c8bdaada9d2b91421cf,gqybre77i47epxul,,,,,,active,,,Wed Jun 26 2024 06:11:37 GMT+0800 (中国标准时间),Fri Jun 28 2024 08:30:37 GMT+0800 (中国标准时间),,,,,16\n48,+8613277777777,,22,e41f345e3a5fb3fefe9349d646545de5c9789e89b2a08fac153f8df98a9f550e,hd7vudyv7mu0x3xz,,,,,,active,,,Fri Jun 28 2024 02:15:49 GMT+0800 (中国标准时间),Mon Jul 01 2024 08:17:49 GMT+0800 (中国标准时间),,Thu Jan 01 1970 00:00:00 GMT+0800 (中国标准时间),,,54\n58,,2664097521@proton.me,张三,14221ca51620c029487bbc832e2501a7410a152a7b77d3cf447cabb2edf80e52,9klyxt5v08u5bqhp,,,,,,unverified,,,Fri Jun 28 2024 03:17:22 GMT+0800 (中国标准时间),Mon Jul 01 2024 09:58:25 GMT+0800 (中国标准时间),Thu Jan 01 1970 00:00:00 GMT+0800 (中国标准时间),,,,72";
      // 创建并下载文件
      const filename = 'data.csv';
      const blob = new Blob([response.data.data], { type: 'text/csv;charset=utf-8;' });
      if (navigator.msSaveBlob) {
        // 兼容IE
        navigator.msSaveBlob(blob, filename);
      } else {
        const link = document.createElement('a');
        if (link.download !== undefined) {
          // 使用download属性,支持大多数浏览器
          const url = URL.createObjectURL(blob);
          link.setAttribute('href', url);
          link.setAttribute('download', filename);
          link.style.visibility = 'hidden';
          document.body.appendChild(link);
          link.click();
          document.body.removeChild(link);
        }
      }
      })
      .catch((error) => {
        console.log(error);
      });
  </script>
  
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/785010.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++ | Leetcode C++题解之第223题矩形面积

题目&#xff1a; 题解&#xff1a; class Solution { public:int computeArea(int ax1, int ay1, int ax2, int ay2, int bx1, int by1, int bx2, int by2) {int area1 (ax2 - ax1) * (ay2 - ay1), area2 (bx2 - bx1) * (by2 - by1);int overlapWidth min(ax2, bx2) - max…

vb.netcad二开自学笔记9:界面之ribbon

一个成熟的软件怎么能没有ribbon呢&#xff0c;在前面的框架基础上再加个命令AddRibbon <CommandMethod("AddRibbon")> Public Sub AddRibbon() Dim ribbonControl As RibbonControl ComponentManager.Ribbon Dim tab As RibbonTab New RibbonTab() tab.Tit…

# 昇思25天学习打卡营第10天 | 使用静态图加速

昇思25天学习打卡营第10天 | 使用静态图加速 文章目录 昇思25天学习打卡营第10天 | 使用静态图加速动态图的开启方式静态图的开启方式基于全局context的开启方式基于修饰器的开启方式 总结打卡 AI编译框架分为两种运行模式&#xff1a; 动态图模式&#xff1a; 计算图的构建和计…

近红外光谱脑功能成像(fNIRS):2.实验设计、指标计算与多重比较

一、实验设计的策略与方法 近红外光谱成像&#xff08;INIRS&#xff09;作为一种非侵入性脑功能成像技术&#xff0c;为研究大脑活动提供了一种高效、生态效度高的方法。然而&#xff0c;为了充分利用INIRS技术并确保实验结果的准确性和可靠性&#xff0c;研究者必须精心设计实…

AGAST (角点检测)

AGAST检测原理 AGAST(Adaptive and Generic Accelerated Segment Test)算法是Elmar于2010年提出的特征检测算法,改进了FAST(Features from Accelerated Segment Test)特征检测方法,使其具有更快的速度和更好的鲁棒性。AGAST算法提供了比FAST算法更详细的特征标记方式和判断依…

DWM 相关实现代码 [自用]

1. DWM 缩略图和模糊隐藏实现半透明 #include <windows.h> #include <dwmapi.h> #include <string> #pragma comment(lib, "dwmapi.lib")// 检查 UWP 窗口是否可见 bool IsUWPWindowVisible(HWND hwnd) {DWORD cloaked 0;DwmGetWindowAttribute(…

matplotlib颜色对照表

matplotlib的色彩设置: #------------------------------------------------------------------------------------------------------------------------------- #-------------------------------------------------------------------------------------------------------…

【linux服务器】大语言模型实战教程:LLMS大模型快速部署到个人服务器

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引言 说到大语言模型相信大家都不会陌生&#xff0c;大型语言模型(LLMs)是人工智能文本处理的主要类型,也现在最流行的人工智能…

【AI大模型】赋能儿童安全:楼层与室内定位实践与未来发展

文章目录 引言第一章&#xff1a;AI与室内定位技术1.1 AI技术概述1.2 室内定位技术概述1.3 楼层定位的挑战与解决方案 第二章&#xff1a;儿童定位与安全监控的需求2.1 儿童安全问题的现状2.2 智能穿戴设备的兴起 第三章&#xff1a;技术实现细节3.1 硬件设计与选择传感器选择与…

报修小程序论文(设计)开题报告

一、课题的背景和意义 近些年来&#xff0c;随着移动互联网巅峰时期的来临&#xff0c;互联网产业逐渐趋于“小、轻、微”的方向发展&#xff0c;符合轻应用时代特点的各类技术受到了不同领域的广泛关注。在诸多产品中&#xff0c;被誉为“运行着程序的网站”之名的微信小程序…

Java | Leetcode Java题解之第224题基本计算器

题目&#xff1a; 题解&#xff1a; class Solution {public int calculate(String s) {Deque<Integer> ops new LinkedList<Integer>();ops.push(1);int sign 1;int ret 0;int n s.length();int i 0;while (i < n) {if (s.charAt(i) ) {i;} else if (s…

(十一) Docker compose 部署 Mysql 和 其它容器

文章目录 1、前言1.1、部署 MySQL 容器的 3 种类型1.2、M2芯片类型问题 2、具体实现2.1、单独部署 mysql 供宿主机访问2.1.1、文件夹结构2.1.2、docker-compose.yml 内容2.1.3、运行 2.2、单独部署 mysql 容器供其它容器访问&#xff08;以 apollo 为例&#xff09;2.2.1、文件…

allWebPlugin中间件实现ActiveX插件在谷歌、火狐、Edge浏览器使用

下载并安装allWebPlugin中间件 1、请从下面地址下载allWebPlugin中间件产品&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1xUyQDzOabh7mU7J7TYhtig?pwdz3q0 提取码&#xff1a;z3q0 如下图所示&#xff0c;下载最新allWebPlugin_x86_v2.0.0.14_stable_20240707…

Flutter【组件】标签

简介 flutter 标签组件。标签组件是一种常见的 UI 元素&#xff0c;用于显示和管理多个标签&#xff08;或标签集合&#xff09;。 github地址&#xff1a; https://github.com/ThinkerJack/jac_uikit pub地址&#xff1a;https://pub.dev/packages/jac_uikit 使用方式&…

机器学习:预测评估8类指标

机器学习&#xff1a;8类预测评估指标 R方值、平均值绝对误差值MAE、均方误差MSE、均方误差根EMSE、中位数绝对误差MAD、平均绝对百分误差MAPE、可解释方差分EVS、均方根对数误差MLSE。 一、R方值 1、说明&#xff1a; R方值&#xff0c;也称为确定系数或拟合优度&#xff…

Python 基础知识:为什么使用 __init__.py ?

大家好&#xff01;今天&#xff0c;我们将深入了解 Python 中的 __init__.py 文件&#xff0c;这个小文件却能干大事。让我们抛开任何专业术语&#xff0c;直接进入正题。 什么是 __init__.py &#xff1f; 假设你有一个 Python 目录&#xff0c;里面有一堆 Python 文件&…

从零开始做题:My_lllp

题目 给出一张png图片 解题 ┌──(holyeyes㉿kali2023)-[~/Misc/题目/zulu/My_lllp] └─$ python2 lsb.py extract my_lllp.png out.txt my_lllp [] Image size: 1080x1079 pixels. [] Written extracted data to out.txt. ┌──(holyeyes㉿kali2023)-[~/Misc/题目/zul…

绝区伍--2024年AI发展路线图

2024 年将是人工智能具有里程碑意义的一年。随着新模式、融资轮次和进步以惊人的速度出现&#xff0c;很难跟上人工智能世界发生的一切。让我们深入了解 2024 年可能定义人工智能的关键事件、产品发布、研究突破和趋势。 2024 年第一季度 2024 年第一季度将推出一些主要车型并…

AI绘画Stable Diffusion:ControlNet组件—Scribble(涂鸦)赋予用户精细控制权,让涂鸦草图焕发生命力

大家好&#xff0c;我是画画的小强 今天给大家分享一下AI绘画Stable Diffusion当中的&#xff1a;ControlNet Scribble组件&#xff0c;**Scribble&#xff08;涂鸦&#xff09;**技术是一种能够为用户提供独特的手动注释或标记图像&#xff08;如&#xff1a;涂鸦、简笔画等&…

变阻器的阻值范围是多少?

变阻器&#xff0c;又称可变电阻器或电位器&#xff0c;是一种可以改变电阻值的电子元件。它通常由一个滑动臂、一个固定电阻体和一个滑动触点组成。通过滑动臂在固定电阻体上的位置变化&#xff0c;可以实现对电阻值的连续调整。变阻器广泛应用于各种电子设备中&#xff0c;如…