首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何通过Node.js/AdonisJs从Neo4j查询结果中发送CSV数据

Node.js是一个基于Chrome V8引擎的JavaScript运行环境,可以用于构建高性能的网络应用程序。AdonisJs是一个基于Node.js的MVC框架,用于构建可扩展的Web应用程序。

Neo4j是一个图形数据库,它使用图形结构来存储和处理数据。它提供了一种灵活的数据模型,可以轻松表示复杂的关系和连接。

要通过Node.js/AdonisJs从Neo4j查询结果中发送CSV数据,可以按照以下步骤进行:

  1. 安装依赖:首先,确保已经安装了Node.js和AdonisJs。然后,使用npm或yarn安装Neo4j驱动程序,例如neo4j-driver
  2. 连接到Neo4j数据库:在Node.js/AdonisJs应用程序中,使用Neo4j驱动程序提供的API连接到Neo4j数据库。这通常涉及到指定数据库的主机、端口、用户名和密码。
  3. 执行查询:使用Neo4j驱动程序提供的API执行查询语句。查询语句可以使用Cypher查询语言编写,以检索所需的数据。
  4. 处理查询结果:根据查询结果的结构,将其转换为CSV格式。可以使用Node.js的内置模块fs来创建和写入CSV文件。
  5. 发送CSV数据:将生成的CSV文件作为响应发送给客户端。可以使用AdonisJs的响应对象来发送文件。

以下是一个示例代码,演示如何通过Node.js/AdonisJs从Neo4j查询结果中发送CSV数据:

代码语言:txt
复制
const neo4j = require('neo4j-driver');
const fs = require('fs');

// 连接到Neo4j数据库
const driver = neo4j.driver('bolt://localhost:7687', neo4j.auth.basic('username', 'password'));
const session = driver.session();

// 执行查询
const query = 'MATCH (n) RETURN n';
session.run(query)
  .then(result => {
    // 处理查询结果并生成CSV数据
    const csvData = result.records.map(record => record.get(0).properties).join('\n');

    // 将CSV数据写入文件
    fs.writeFileSync('result.csv', csvData);

    // 发送CSV文件作为响应
    response.attachment('result.csv');
    response.send(fs.createReadStream('result.csv'));
  })
  .catch(error => {
    console.error('Error executing query', error);
  })
  .finally(() => {
    // 关闭会话和驱动程序
    session.close();
    driver.close();
  });

在上面的示例中,我们使用neo4j-driver连接到Neo4j数据库,并执行一个简单的查询来检索所有节点。然后,我们将查询结果转换为CSV格式,并将其写入名为result.csv的文件中。最后,我们使用AdonisJs的响应对象将CSV文件作为响应发送给客户端。

请注意,这只是一个简单的示例,实际应用中可能需要根据具体需求进行适当的修改和优化。

推荐的腾讯云相关产品:腾讯云数据库Neo4j,它是腾讯云提供的一种高性能、高可用的图形数据库服务。您可以通过腾讯云控制台或API进行创建和管理。了解更多信息,请访问腾讯云数据库Neo4j产品介绍

相关搜索:通过查询或从Vue中的存储发送数据如何在node.js中使用nodemailer通过电子邮件发送查询结果如何在laravel中从查询结果中获取数据从Java中执行对neo4j数据库的查询,解析结果如何通过Python从CSV中过滤出特定数据?从查询结果中获取邮件后,如何发送到多个邮件?如何使用列表元素通过dplyr从数据库中查询数据?如何使用ReactJS、Node.js和MySQL查询将数据从表单数据发送到数据库?如何从通过控制器发送的结果中动态填充morris.js图表?如何从查询关系数据库中获取CSV字符串?如何从Elasticsearch中的嵌套数据类型查询中获得所有结果?如何通过命令放入"IN"子句中的条件从数据库中获取结果?如何通过AIRFLOW将数据从GCP Postgres sql导出到GCS中的csv文件?如何从WebAPI发送IAsyncEnumerator,并在C# 8+中通过HttpClient流式传输数据?如何通过在REST API查询参数中发送两个日期从HCM Fusion获取员工缺勤数据如何使用SSIS将sql server查询结果导出为.csv文件,导出文件中的数据应为双引号。如何使用逗号以外的分隔符从hadoop导出csv数据(通过色调中的配置单元)?如何通过doctrine查询构建器中的多对多关系从用户列表中获取关联数据如何从数据库中导出巨大的结果集到几个csv文件中,并在运行时压缩它们?如何将数据从ejs(日期选择器)传递到js(查询数据库),然后在ejs(在标签中)中显示结果?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

3分钟将10M Stack Overflow导入Neo4j

我想演示如何将Stack Overflow快速导入到Neo4j。之后,您就可以通过查询图表以获取更多信息,然后可以在该数据集上构建应用程序。...[关系表] 所以Damien编写了一个小的Python脚本XML中提取CSV文件,并使用必要的头文件neo4j-import工具完成了巨大表格创建图表的繁重工作。您可以在这里找到脚本和说明。...python3 to_csv . py extracted 转换在我的系统上运行了80分钟,9.5GB的CSV文件被压缩到3.4G。 这是导入到Neo4j数据结构。...使用Cypher进行深入了解 以下只是我们使用Cypher查询Stack Overflow数据收集到的一些信息: 前10名Stack Overflow用户 match ( u : User )...: Neo4j数据库转储为2.3-SNAPSHOT或2.2.4 运行Neo4j服务器以探索数据(只读) CSV文件 如果您想了解其他方式来导入或可视化Neo4j的Stack Overflow问题,请查看以下博客文章

6.6K70

分享10个NodeJS相关的专业级工具

Helios的核心目标是帮助开发人员深入了解其Node.js应用程序的性能和行为,并通过提供有关应用程序的实时数据和可操作见解来优化其运行。...Sentry的特点包括: 支持主要的编程语言和框架,包括JavaScript、Python、Ruby、Node.js、Go、.Net、Android和iOS。 实时应用程序监控。 支持自定义查询。...自定义查询功能使您能够根据自己的需求获取特定的数据数据可视化功能可以将复杂的应用程序数据以直观的方式展示出来,帮助您更好地理解和分析应用程序的运行情况。...FeathersJS具有活跃的社区支持和庞大的用户群体,开发人员可以社区获取支持和参与交流,共同推动FeathersJS的发展和改进。 7....WunderGraph自动处理缓存和请求去重,减少重复请求的发送,并提供了高效的数据获取和处理机制。 与现有的REST、GraphQL和gRPC API的无缝集成。

1.1K20
  • ​知识图谱里的知识存储:neo4j的介绍和使用

    http://db-engines.com/en/ranking 可以发现,Neo4j 是目前用的最多的图数据库,世界数据库排行榜上排名21位。...Neo4J属于原生图数据库,其使用的存储后端专门为图结构数据的存储和管理进行定制和优化的,在图上互相关联的节点在数据的物理地址也指向彼此,因此更能发挥出图结构形式数据的优势。...图数据库的优势在于: 性能上,对长程关系的查询速度快 擅于发现隐藏的关系,例如通过判断图上两点之间有没有走的通的路径,就可以发现事物间的关联 数据存储形式 neo4j数据存储形式 主要是 节点(node...接着在浏览器打开 “ http://localhost:7474/ ”,就可以访问Neo4j管理界面了。 ? neo4j网页管理界面 我们通过一个例子来说明如何运用neo4j数据库。 1....返回结果 (c1)-[r]-(c2) 匹配到的子图如下所示: ? 创建新的关系 3.比较复杂的查询 下面这条语句会把所有公司,指向其他公司的连接关系数超过75条的公司全部找出来。

    7.8K51

    开发实践|如何使用图数据Neo4j

    X√1 使用Neo4j1.1 管理Neo4j当我们需要在CE创建数据库时,我们可以按照下面的步骤来。...1.2 Cypher查询语言Cypher查询语言(简称:CQL),就像MySQL,Oracle的查询语言是SQL,Protege的查询语言是GQL,而Neo4j查询语言则是CQL。...文件格式:确保要导入的.csv文件是正确的格式,包括逗号分隔的值、引号括起来的文本等。如果文件格式不正确,导入操作可能会失败或产生错误的结果数据类型:在导入.csv文件时,需要指定每个列的数据类型。...如果某个列的数据类型与实际数据不匹配,可能会导致数据转换错误或数据丢失。列名:确保.csv文件包含列名,并且这些列名与数据的表结构相匹配。...如果不包含列名或列名与表结构不匹配,导入操作可能会失败或产生错误的结果数据处理:在导入.csv文件时,可能需要处理一些数据问题,例如空值、缺失值、数据转换等。

    44820

    neo4j的安装配置及用途

    这一次选用的是基于java实现的开源图数据neo4j和Python,搭建关联图谱。 本文向大家介绍neo4j的安装配置及用途,并教大家如何neo4j导入数据,避免深坑。 一、什么是neo4j?...除此之外,两个数据节点之间还包含了两条关系数据。即夏东海娶了刘梅,刘梅和夏东海生活在一起。 把这些数据存储在neo4j数据,利用这些关系数据,可以方便地作出基于关系的查询。...二、neo4j有哪些用途? ? 1 社交网络 根据用户的好友关系网给用户推荐新朋友。例如,QQ推荐新朋友。如果两个人在QQ不是朋友,但共同好友超过10个,系统发送消息给这两个人推荐对方。...可以Oracle官方网站下载 Java SE JDK,也可以在公众号回复“JDK安装”直接获取。 2 下载neo4j安装文件 neo4j官网下载最新版本的社区版,可免费使用neo4j。...文件夹 3 本地导入不带表头的数据 using periodic commit 10000 load csv from"file:/artist.csv"as line create (:test

    1.3K20

    练习题︱豆瓣图书的推荐与搜索、简易版知识引擎构建(neo4j

    如表格:item_data_item.csv ---- 三、豆瓣图书知识库简单应用(Neo4j的使用) 借用neo4j简单的实践了一下:neo4j的docker启动、数据导入模块、py2neo查询模块。...练习的时候有些心得: 保证节点的唯一性 犯错:在book_excel,书名信息是不唯一的,可能一本书既可能被归类到 旅游、哲学、编程、创业 其他心得: (1)效果来看,如果关系类型比较少,比较适合直接用多表合一的方式进行查询...; 知识图谱的图数据库的查询,建立在关系错综复杂、才有查询必要。...备份Neo4j数据: 1)停掉数据库. 2)备份D:\Neo4J\neo4j-enterprise-1.9.1\data目录下graph.db目录的所有内容. 3)在服务器上拷贝graph.db...:7474", username="neo4j", password="qwer@1234" ) 通过py2neo先链接neo4j数据库。

    1.4K20

    【玩转腾讯云】使用腾讯云助力知识图谱

    可以看到数据量很大,在阿里巴巴的压缩包,还有一篇pdf文档,介绍了将数据导入nebula 图数据的步骤以及edge.csv和vertex.csv的格式,这里简单贴一下数据格式: vertex.csv...数据格式 edge.csv数据格式 在网上找了一下如何导入到neo4j,参考了:https://yuukiblog.top/2019/10/16/neo4j%E5%AF%BC%E5%85%A5%E7%...如果不知道在哪,可以通过Neo4j desktop打开本地的一个图数据库,点击Manage: 点击open folder即可打开import文件夹。...=true 注:网上很多版本说需要先删除databases文件夹下的graph.db文件夹,本人测试来看,完全不需要,上述命令的graph.db可任意更换名称。...不知道为何使用上述命令导入之后新增的graph.db(名字和命令的database参数有关)无法显示,也可能是本来就不会显示。。。 没办法,只能通过其他办法。

    3.1K115

    Neo4j 图形数据库中有哪些构建块?

    我们可以现有节点或关系删除现有标签。从上图中,我们可以观察到有两个节点。左侧节点有一个标签:“Emp”,右侧节点有一个标签:“Dept”。...注意 - Neo4j数据存储在节点或关系的属性 Neo4j 数据浏览器安装 Neo4j 后,我们可以使用以下 URL 访问 Neo4j 数据浏览器http://localhost:7474/browser...它与 Neo4j 数据库服务器交互,检索并在美元提示符下方显示结果。使用“VI 查看”按钮以图表格式查看结果。使用“网格视图”按钮在网格视图中查看结果。...当我们使用“网格视图”来查看我们的查询结果时,我们可以将它们以两种不同的格式导出到一个文件CSV单击“导出 CSV”按钮以 csv 文件格式导出结果。...但是,如果我们使用“UI View”来查看我们的查询结果,我们可以将它们导出到仅一种格式的文件:JSON​我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

    12610

    手把手教学构建农业知识图谱:农业领域的信息检索+智能问答,命名实体识别,关系抽取,实体关系查询

    pip3 install -r requirement.txt 1.导入数据: 将hudong_pedia.csv导入neo4j:开启neo4j,进入neo4j控制台。....csv三个文件放入neo4j的import文件夹(运行relationDataProcessing.py可以得到这3个文件),然后分别运行 // 导入新的节点 LOAD CSV WITH HEADERS...我们进入8000端口主页面,输入文本,即可看到以下命名实体和分词的结果(确保django和neo4j都处于开启状态) ---------------------- 2.1农业知识问答 图片 2.2关系查询...标注好的数据同样存在MongoDB另一个Collection。...使用公开数据集,直接进入Algorithm,忽略之后所有的操作) 运行python dosomething.py filter_dataset 得到filtered_data.txt 运行python

    77220

    2018-11-19 如何将大规模数据导入Neo4j及导入具体步骤及Demo

    : Cypher CREATE 语句,为每一条数据写一个CREATE Cypher LOAD CSV 语句,将数据转成CSV格式,通过LOAD CSV读取数据。...速度如何?适用的场景分别是什么?...缺点 | 速度慢 | 需要将数据转换成CSV | 需要转成CSV;只能在JAVA中使用;且插入时必须停止neo4j | 需要转成CSV;必须停止neo4j | 需要转成CSV;必须停止neo4j;只能生成新的数据库...Cypher Create语句 其主要过程就是将Cypher语句写在某个文件,在用Java或者Python代码操作,并用jdbc连接Neo4j服务器并且执行,本方法操作太慢,仅适用于某些插入量很小的场景或者查询场景...建立index可以使得查询性能得到巨大提升。如果不建立index,则需要对每个node的每一个属性进行遍历,所以比较慢。 并且index建立之后,新加入的数据都会自动编入到index

    2.4K20

    基于Neo4j构建的外贸企业关系图谱做企业相似度查询「建议收藏」

    目录 一、外贸企业关系图谱的构建 1.Oracle导出数据 2.导入数据Neo4j 3.Neo4j数据展示 二、用Cypher做企业关联查询 1.多层关系查询 2.基于邻居信息的Jaccard...相似度计算 3.加权关联度得分计算 三、总结 一、外贸企业关系图谱的构建 说来惭愧,本科、研究生期间还没写过博客,正巧最近在写论文,想结合自己开发的项目来构思,于是就通过这篇博客记录一下使用Neo4j数据库来做企业相似度查询的过程...这次外贸企业关系图谱的构建用到以前项目中测试库(Oracle)的数据,导入成csv格式后,再通过python的py2neo导入到neo4j。...———–由于数据涉及项目的私密信息,暂时就不分享出来了———— 1.Oracle导出数据 该表在Oracle数据的部分结构如下: 目前数据的外贸企业数据约30多万条,经过两轮的数据清洗和过滤...2.导入数据Neo4j Neo4j有自己的csv导入工具,还可以通过cypher语句导入csv格式的数据,但是这里我使用的是pyhon的py2neo库来完成数据的导入。

    1.5K20

    JAW:一款针对客户端JavaScript的图形化安全分析框架

    ; 7、设计并执行定制的安全相关程序分析,包括预定义 JavaScript 源和接收器之间的数据流分析、控制流和可达性分析、利用 DOM 快照解析 DOM 查询选择器、通过抽象语法树 (AST) 进行模式匹配等...; 工具架构 工具要求 1、最新版本的NPM包管理器(Node.JS); 2、最新稳定版Python 3.x; 3、pip包管理器; 工具安装 广大研究人员可以直接使用下列命令将该项目源码克隆至本地:.../install.sh 运行管道 我们可以通过以下方式在命令行终端运行管道实例: $ python3 -m run_pipeline --conf=config.yaml 命令行参数 $ python3...图形化数据: $ python3 -m hpg_neo4j.hpg_import --rpath= --id= -...-nodes= --edges= 下列命令可以针对输出数据(hpg_crawler)创建一个混合属性图,并导入至本地Neo4j实例: $ python3 -m

    9810

    一文聊“图”,数据库到知识图谱

    Neo4j也提供了shortestPath方法来获取节点间的最短路径关系,下面这个查询基于Neo4j官方提供的电影和演员数据: 我们的历史数据大多都存储在关系型数据neo4j也很好的支持了关系型数据表...在用Cypher查询时,我们也可以通过EXPLAIN或PROFILE对查询语句进行分析,辅助查询调优。...用于执行Neo4j CQL查询结果的分页和排序 Neo4j集群搭建 考虑到系统实施时大规模生产环境和容错问题,Neo4j企业版提供高可用集群和因果集群两种集群功能,实现高可用性和水平读扩展,有效提高系统整体性能...2.高速缓存分片,这种方式利用了主存储器数据查询执行最快,如下图所示,高可用集群的节点实例将图的部分数据放在自己的主存储器,负载均衡器将请求路由到对应的节点实例上,提升查询效率。...图数据应用:在构建好的图数据基础之上,通过图计算引擎对海量图数据进行离线的计算分析,针对不同的应用场景,也可以在内存处理或工作存储对图数据进行查询分析。

    1.8K20

    手把手教学构建证券知识图谱知识库(含码源):网页获取信息、设计图谱、Cypher查询Neo4j关系可视化展示

    图片 2.⽹页抽取董事会的信息 在我们给定的html文件,需要对每一个股票/公司抽取董事会成员的信息,这部分信息包括董事会成员“姓名”、“职务”、“性别”、“年龄”共四个字段。...3.获取股票行业和概念的信息 分类数据_提供股票的分类信息数据股票类型的不同角度进行数据分类,在一些统计套利方法的应用,时常会以股票的分类来做切入,比如对某些行业或概念进行阶段统计来决定近期的交易策略等...,但这些文件不能直接导入到Neo4j数据库。...--relationships stock_concept.csv 这个命令会把所有的数据导入到Neo4j数据默认存放在 graph.db 文件夹里。...如果graph.db文件夹之前已经有数据存在,则可以选择先删除再执行命令。 把Neo4j服务重启之后,就可以通过localhost:7474观察到知识图谱了。

    51561

    一文聊“图”,数据库到知识图谱

    随着知识图谱的发展,图数据库一词被越来越多的提到。那么到底什么是图数据库,为什么要用图数据库,如何去建设一个图数据库应用系统,图数据库与知识图谱到底是什么关系。...我们的历史数据大多都存储在关系型数据neo4j也很好的支持了关系型数据CSV文件的导入,CSV文件的导入有两种方式: 1.直接用Cypher LOACCSV: LOAD CSV WITH HEADERS...在用Cypher查询时,我们也可以通过EXPLAIN或PROFILE对查询语句进行分析,辅助查询调优。...查询语言(CQL)执行Neo4j CRUD操作 PaginationAndSortingRepository 用于执行Neo4j CQL查询结果的分页和排序 04 Neo4j集群搭建 考虑到系统实施时大规模生产环境和容错问题...图数据应用:在构建好的图数据基础之上,通过图计算引擎对海量图数据进行离线的计算分析,针对不同的应用场景,也可以在内存处理或工作存储对图数据进行查询分析。

    5.8K41

    史上最全面的Neo4j使用指南「建议收藏」

    它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(数学角度叫做图)上而不是表。...Neo4j的特点 SQL就像简单的查询语言Neo4j CQL 它遵循属性图数据模型 它通过使用Apache Lucence支持索引 它支持UNIQUE约束 它它包含一个用于执行CQL命令的UI:Neo4j...:) 示例 CREATE (m:Movie:Cinema:Film:Picture) 2.MATCH查询 Neo4j CQL MATCH命令用于 数据库获取有关节点和属性的数据...通过观察这些结果,我们可以说,CQL MERGE命令将新的节点添加到数据库,只有当它不存在。 13.NULL值 Neo4j CQL将空值视为对节点或关系的属性的缺失值或未定义值。...将此值设置为`false`将导致Neo4j不能通过互联网上的URL导入数据,`LOAD CSV` 会文件系统加载数据

    36.7K56

    一文教你用 Neo4j 快速构建明星关系图谱

    数据到手后,存成 csv,丢到 neo4j 里,就能查询出“张国荣”的关系。 ? 如果想进一步查看“张国荣”扩散出去的关系,也很方便。 ? 因缘际会 有没有觉得很酷炫,很想赶紧学起来。...安装 Neo4j 属于图形数据库,与更广为人知的 MySQL 等关系型数据库不同,其保存的数据格式为节点和节点之间的关系,构建和查询关系数据非常高效便捷。...Neo4j官网下载最新社区(Community)版本 ,解压到目录,E:eo4j-fileeo4j-community-3.5.3。 ?...cd /d E: cd E: eo4j-file eo4j-community-3.5.3in neo4j start 接着便可以用 Cypher 查询语言(CQL,像Oracle数据库具有查询语言SQL...构建明星关系图谱 如果你对爬虫不感兴趣,只是想知道如何导入现有的csv数据,然后用neo4j构建关系图谱,那么直接从这里开始实践即可,毕竟这次的数据也是无偿提供的。

    94730

    neo4j︱Cypher完整案例csv导入、关系联通、高级查询(三)

    —- 目前的几篇相关:—– neo4j︱图数据库基本概念、操作罗列与整理(一) neo4j︱Cypher 查询语言简单案例(二) neo4j︱Cypher完整案例csv导入、关系联通、高级查询...(三) 第三篇,一个比较完整的csv导入,并进行查询的案例,涉及的数据量较大,更贴合实际场景。...本文是官方的一个比较完整的案例,包括三部分:csv载入、建立实体关联、查询 其中csv载入与建立实体关联可以了解到如何Neo4j数据集; cypher的查询也有难易之分,该案例较好得进行了使用...一、载入基本实体信息 保证数据格式 因为neo4j是utf-8的,而CSV默认保存是ANSI的,需要用记事本另存为成UTF-8的。...第二步,with用法,with从句可以连接多个查询结果,即将上一个查询结果用作下一个查询的开始, (哈哈哈… 后面有点不明白,查完资料再补充…) ?

    3K20

    一文教会你使用 Neo4j 快速构建明星关系图谱

    数据到手后,存成 csv,丢到 neo4j 里,就能查询出“张国荣”的关系。 ? 如果想进一步查看“张国荣”扩散出去的关系,也很方便。 ? 因缘际会 有没有觉得很酷炫,很想赶紧学起来。...安装 Neo4j 属于图形数据库,与更广为人知的 MySQL 等关系型数据库不同,其保存的数据格式为节点和节点之间的关系,构建和查询关系数据非常高效便捷。...Neo4j官网下载最新社区(Community)版本 ,解压到目录,E: eo4j-file eo4j-community-3.5.3。 ?...cd /d E: cd E: eo4j-file eo4j-community-3.5.3in neo4j start 接着便可以用 Cypher 查询语言(CQL,像Oracle数据库具有查询语言SQL...构建明星关系图谱 如果你对爬虫不感兴趣,只是想知道如何导入现有的csv数据,然后用neo4j构建关系图谱,那么直接从这里开始实践即可,毕竟这次的数据也是无偿提供的。

    1.2K20

    一文教你用 Neo4j 快速构建明星关系图谱

    数据到手后,存成 csv,丢到 neo4j 里,就能查询出“张国荣”的关系。 ? 如果想进一步查看“张国荣”扩散出去的关系,也很方便。 ? 因缘际会 有没有觉得很酷炫,很想赶紧学起来。...安装 Neo4j 属于图形数据库,与更广为人知的 MySQL 等关系型数据库不同,其保存的数据格式为节点和节点之间的关系,构建和查询关系数据非常高效便捷。...Neo4j官网下载最新社区(Community)版本 ,解压到目录,E:\neo4j-file\neo4j-community-3.5.3\。 ?...cd /d E: cd E:\neo4j-file\neo4j-community-3.5.3\bin neo4j start 接着便可以用 Cypher 查询语言(CQL,像Oracle数据库具有查询语言...构建明星关系图谱 如果你对爬虫不感兴趣,只是想知道如何导入现有的csv数据,然后用neo4j构建关系图谱,那么直接从这里开始实践即可,毕竟这次的数据也是无偿提供的。

    1.1K10
    领券