- Node.js学习:深入解析Express中间件body-parser的源码
碧海蓝天·
node.js学习express
Node.js学习:深入解析Express中间件body-parser的源码在Node.js开发中,Express是一个非常受欢迎的Web应用框架。它提供了许多功能强大且易于使用的中间件,其中之一是body-parser,它用于解析HTTP请求体中的数据。在本文中,我们将深入探讨body-parser中间件的源码,了解它是如何实现的。首先,让我们来看一下body-parser中间件的基本用法:co
- 力扣257. 二叉树的所有路径
黄贞辉
算法算法
思路:题目需要记录从根节点开始走的路径,无疑选用前序遍历,用一个数组paths记录走过的节点信息,遇到叶子节点就用另一个list记录下路径,回溯时删掉paths尾节点即可classSolution{publicListbinaryTreePaths(TreeNoderoot){Listlist=newArrayListpaths=newArrayListpaths,Listlist){//前序遍历
- 一文解锁 NVM:Node版本随意切换不再发愁
一个小白的小白人
前端nvmnode.js前端node.js
前言搞前端开发的朋友肯定都对Node.js不陌生,它在咱们的工作里,就像得力助手,没了它,很多工作都没法顺利开展。但Node.js更新得那叫一个快,新特性、新优化不断冒出来。这就好比你本来开着一辆顺手的车,开得正稳呢,突然厂家说出了新款,性能更强,功能更多,你心里肯定痒痒,想试试新的。可实际情况是,每个项目就像不同的乘客,需求不一样。我之前做一个老项目维护,它就像个念旧的乘客,只认Node.js的
- Sqoop 支持 ORC 文件格式
吃鱼的羊
sqoop
ORC介绍ORC文件格式是Hive0.11.0版本引入的一种文件格式。ORC的引入是为了解决其他Hive文件格式的局限性。使用ORC文件格式提升Hive读取、写入及处理数据的性能。与RCFile对比,ORC文件格式有很多优点:每个Task只输出一个文件,降低NameNode的负载。Hive数据类型支持,包括:datetime、decimal以及复杂数据类型(struct、list、map、unio
- 基于websocket实现Web群聊
一杯雪花勇闯天涯
音视频技术websocket前端javascript
安装node中ws模块npminstallwsNode中处理代码constWebSocket=require("ws");constwsServer=newWebSocket.Server({port:3000});varmaps=newMap();varnumber=0;varsendMessage={};wsServer.on('connection',(socket)=>{console.l
- Vue.js `v-memo` 性能优化技巧
轻口味
VUE.JS入门与实践vue.js性能优化前端
Vue.jsv-memo性能优化技巧今天我们来聊聊Vue3.2引入的一个性能优化指令:v-memo。如果你在处理大型列表或复杂组件时,遇到性能瓶颈,那么v-memo可能会成为你的得力助手。什么是v-memo?v-memo是Vue3.2新增的内置指令,用于缓存特定元素节点的虚拟DOM(VNode)。在节点更新时,通过复用之前的VNode,减少重新创建和比较的开销,从而提升渲染性能。使用场景v-mem
- kafka下载安装、简易实例、遇到的错误解决
诸葛名义
kafkalinuxhadoopzookeeper
目录kafk实例错误解决WARN[ConsumerclientId=consumer-1,groupId=console-consumer-94437]Connectiontonode-kafka启动:Nativememoryallocation(mmap)failedtomap1073741824bytesforcommittingreservedmemorkafka下载地址:https://m
- XML DOM - 导航节点
shangaoo
xmljavascript开发语言
可通过使用节点间的关系对节点进行导航。导航DOM节点通过节点间的关系访问节点树中的节点,通常称为导航节点("navigatingnodes")。在XMLDOM中,节点的关系被定义为节点的属性:parentNodechildNodesfirstChildlastChildnextSiblingpreviousSibling下面的图像展示了books.xml中节点树的一个部分,并说明了节点之间的关系:
- XML DOM 节点列表
shangaoo
xmlwindowsmicrosoft
节点列表由getElementsByTagName()方法和childNodes属性返回。尝试一下-实例下面的实例使用XML文件books.xml。函数loadXMLDoc(),位于外部JavaScript中,用于加载XML文件。从第一个元素获取文本本例使用getElementsByTagName()方法从"books.xml"中的第一个元素获取文本。使用length属性遍历节点本例使用节点列表和
- Web-3.0学习路线
奶龙牛牛
web3
方向学习内容✅区块链基础区块链、智能合约、共识机制✅智能合约Solidity/Rust(Ethereum/Solana)✅前端React.js,Next.js,Web3.js,ethers.js✅后端Node.js,Python,Golang(链上数据)✅存储IPFS,Arweave,Filecoin(去中心化存储)✅交互MetaMask,WalletConnect(钱包)如果你是前端开发Reac
- ROS2海龟仿真:两只海龟跟踪实验(一只键盘控制,一只自动跟随)
xehuosh
linuxc++人工智能机器人
控制理论与工程应用基础作业1.环境准备确保ROS2已安装,并可以正常运行turtlesim模拟环境。首先,测试turtlesim节点是否能够正常启动:ros2runturtlesimturtlesim_node正常运行,关闭页面。2.创建功能包进入~/colcon_ws/src文件目录,使用以下命令创建一个新的ROS2功能包,命名为cpp_a_follow_turtle_pkg,并添加必要的依赖关
- priority_queue的创建_结构体类型(重载小于运算符)c++
h^hh
算法开发语言c++数据结构
当优先级队列里面存的是一个自定义(结构体)类型,我们有两种方式,一个是用内置类型的方式,在priority_queue,less,把int改成结构体的名字就可以了,但此时就不能用less了,因为less默认是对内置类型使用的,如果less#includeusingnamespacestd;structnode{inta,b,c;//重载就可以了booloperatorx.b;}};voidtest
- pyqt5多线程优化_告别阻塞!实例讲解PyQt5多线程QThread的运用
檀临
pyqt5多线程优化
点击关注州的先生编程应用、实战教程,不容错过PS:本文来自于小伙伴的投稿,由伊洛首发于简书。QThread类提供了一种独立于平台的线程管理方法。QThread对象管理程序中的一个控制线程,在run()中开始执行QThreads。默认情况下,run()通过调用exec()启动事件循环,并在线程中运行Qt事件循环。classThread(QThread):def__init__(self):super
- 切换node版本
test猿
前端javascript
一、在Linux上切换Node.js版本有多种实现方法:1.使用nvm(NodeVersionManager):安装nvm:可以通过curl或wget来安装nvm,具体请参考nvm的官方文档。安装不同版本的Node.js:使用nvm可以轻松地安装、管理和切换不同版本的Node.js。例如,要安装Node.js的最新版本,可以使用命令nvminstallnode。要安装特定版本的Node.js,可以
- 【kubernetes系列】Kubernetes之master和node
margu_168
Kuberneteskubernetes容器docker
在学习k8s之前,必须先了解Kubernetes中的重要概念,它们是组成Kubernetes集群的基石。(参考Kubernetes权威指南)一、MasterKubernetes里的Master指的是集群的控制节点,每个Kubernetes集群里至少需要有一个Master节点负责整个集群的管理和控制,基本上Kubernetes的所有控制命令都发给它,它来负责具体的执行过程,我们后面执行的所有命令基本
- 大前端工程师进阶之路,Node全栈为前端带来更多可能
麦田上的字节
高级前端全栈教程系列程序人生系列大前端node程序人生
导读:对那些刚入门前端的开发者来说,前端是一个“令人畏惧”的领域,尤其是在你看到前端的技能图谱时,你会发出这样的感叹,前端怎么有那么多的东西要学?我应该从何处学起?我又该如何应对千变万化的前端技术?目录如何选择?关于变化前端工程师如何抉择全栈工程师很吊?说一说node全栈?K型人才?在大厂,前端晋升靠啥?大前端的边界到底在哪里?如何选择?俗话说,“男怕入错行,女怕嫁错郎”。其实前端开发也一样,从开
- JS 中的DOM 操作
天涯学馆
大前端&移动端全栈架构javascript前端
目录概念Node接口NodeList接口,HTMLCollection接口ParentNode接口,ChildNode接口Document节点Element节点属性的操作Text节点和DocumentFragment节点
- CSS预处理器Stylus
天涯学馆
大前端&移动端全栈架构cssstylus前端
CSS预处理器StylusStylus是一款高效的CSS预处理器,它提供了简洁灵活的语法来帮助开发者更高效地编写和管理CSS代码。下面是一些基础到进阶的Stylus代码教程,涵盖变量、嵌套、混合、继承、运算符等核心特性。1.安装Stylus在项目中使用Stylus前,你需要先安装Stylus编译器。如果你使用的是Node.js,可以通过npm安装:npminstall-Dstylus2.基本使用变
- 基于TS手写前端MVC框架简单实现购物车功能
千锋HTML5大前端
前端html5前端技术文章前端mvcjavascript
一、后端TS版搭起MVC架构的web服务器注意点:1.用TS写node服务器需要先下nodeAPI的TS库2.通过引入文件,通过回调方式,将参数传入引入文件进行不同层的联动操作3.事件侦听,抛发的方式完成路由操作项目目录说明:1.main:0)入口文件1)创建了main单例,在当前页面执行main实例的init方法,即直接nodemain.js开启服务2)init方法中根据引入的sever类,创建
- Autosar通信实战系列09-CanIf模块要点及其配置介绍(一)
Autosar汽车电子进阶
autosar通信CAN
本文框架前言1.Physicalchannels,CANController,CANNode概念2.BasicCAN与FullCAN3.报文过滤(掩码)4.报文Dlc校验5.CanIf模块功能5.1CANcontrollers和CANtransceivers控制5.2提供报文收发机制5.3唤醒源校验前言在本系列笔者将结合工作中对通信实战部分的应用经验进一步介绍常用,包括但不限于通信各模块的开发教程
- Hive 整合 Spark 全教程 (Hive on Spark)
字节全栈_rJF
hivesparkhadoop
hadoop.proxyuser.luanhao.groups*hadoop.proxyuser.luanhao.groups*2)HDFS配置文件配置hdfs-site.xmldfs.namenode.http-addressBigdata00:9870dfs.namenode.secondary.http-addressBigdata00:9868dfs.replication13)YARN配
- ElasticSearch view
稚辉君.MCA_P8_Java
CentOS7.6KubernetesCluster高可用Kubernetes集群elasticsearchlinux全文检索搜索引擎大数据
基础知识类elasticsearch和数据库之间区别?elasticsearch:面向文档,数据以文档的形式存储,即JSON格式的对象。更强调数据的搜索、索引和分析。数据库:更侧重于事务处理、数据的严格结构化和完整性,适用于关系复杂、数据一致性要求高的业务场景。elasticsearch和核心组件包含哪些?节点(Node):elasticsearch集群中一个服务器实例,负责存储数据、处理请求等,
- nvm安装 node版本报错npm命令不存在
m0_67265654
前端htmllinux运维服务器
因为项目需要用低版本的node,所以采用了nvm来切换node版本,想装v10.13.0版本的node,但是直接nvminstallv10.13.0时,报以下错误(已经没有截图了),如下:ErrorwhilecreatingC:ProgramFiles(x86)vm14.exe-openC:ProgramFiles(x86)vm10.13.0ode64.exe:Accessisdenied.Cou
- Mac m1,m2,m3芯片使用nvm安装node14报错
李小苶
工具nodejsmacos
使用nvm安装了node12/16/18都没有问题,到14就报错了。第一次看到这个报错有点懵,查询资料发现是Mac芯片的问题。Issue上提供了两个方案:1、为了在arm64的Mac上安装node14,需要使用Rosseta,可以通过以下命令安装/usr/sbin/softwareupdate--install-rosetta--agree-to-license2、更改arch后即可安装arch-
- zookeeper-3.8.3-基于ACL的访问控制
jimiStephen
zookeeperlinux分布式
ZooKeeper基于ACL的访问控制ZooKeeper用ACL控制对znode的访问,类似UNIX文件权限,但无znode所有者概念,ACL指定ID及对应权限,且仅作用于特定znode,不递归。ZooKeeper支持可插拔认证方案,ID格式为scheme:expression。客户端认证时,其对应ID与连接关联,访问znode时与ACL比对。ACL权限CREATE:可创建子节点。READ:可获取
- [LeetCode]day9 203.移除链表元素
因兹菜
leetcode链表算法
203.移除链表元素-力扣(LeetCode)题目描述给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val==val的节点,并返回新的头节点。示例1:输入:head=[1,2,6,3,4,5,6],val=6输出:[1,2,3,4,5]示例2:输入:head=[],val=1输出:[]示例3:输入:head=[7,7,7,7],val=7输出:[]提示:列表中的节点
- 链表 简单介绍
xspwmd
链表数据结构
链表是一种常见的数据结构,用于存储和组织数据元素的集合。链表中的元素称为节点(Node),每个节点包含两部分:数据域(存储数据的部分)和指针域(指向下一个节点的引用)。链表的基本构造单位是节点,而节点之间通过指针连接起来,形成链式结构。链表分为单向链表和双向链表两种主要类型:单向链表(SinglyLinkedList):每个节点包含一个数据域和一个指向下一个节点的指针。最后一个节点的指针指向空值(
- Node.js 的底层原理
阿芯爱编程
面试js技巧网络前端javascript
Node.js的底层原理1.事件驱动和非阻塞I/ONode.js基于ChromeV8引擎,使用JavaScript作为开发语言。它采用事件驱动和非阻塞I/O模型,使其轻量且高效。通过libuv库实现跨平台的异步I/O,包括文件操作、网络请求等。2.单线程事件循环Node.js使用单个线程来处理所有请求,通过事件循环机制来管理并发。事件循环不断检查是否有待处理的事件或回调函数,并依次执行它们。这种模
- Prometheus+grafana+alertmanager告警平台搭建
zhangshaohuas
prometheus
目录一:基本组件理解二:告警平台架构图三:prometheus部署3.1:创建用户3.2:下载安装包3.3:解压3.4:设置prometheus.yml3.5:将prometheus设置为系统服务3.6:启动prometheus服务四:node_exporter部署4.1:下载安装包:4.2:解压4.3:将node_exporter设置为系统服务4.4:启动node_exporter服务五:gra
- 安装HBase-2.4.12 (hadoop3.3.1)
不饿同学
大数据hbasebigdatahadoop
1.下载https://www.apache.org/dyn/closer.lua/hbase/2.4.12/hbase-2.4.12-bin.tar.gz节点角色配置节点MasterZooKeeperRegionServernode001yesyesyesnode002backupyesyesnode003noyesyes2.解压下载的文件,并切换到新创建的目录。(base)[root@node
- Algorithm
香水浓
javaAlgorithm
冒泡排序
public static void sort(Integer[] param) {
for (int i = param.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
int current = param[j];
int next = param[j + 1];
- mongoDB 复杂查询表达式
开窍的石头
mongodb
1:count
Pg: db.user.find().count();
统计多少条数据
2:不等于$ne
Pg: db.user.find({_id:{$ne:3}},{name:1,sex:1,_id:0});
查询id不等于3的数据。
3:大于$gt $gte(大于等于)
&n
- Jboss Java heap space异常解决方法, jboss OutOfMemoryError : PermGen space
0624chenhong
jvmjboss
转自
http://blog.csdn.net/zou274/article/details/5552630
解决办法:
window->preferences->java->installed jres->edit jre
把default vm arguments 的参数设为-Xms64m -Xmx512m
----------------
- 文件上传 下载 解析 相对路径
不懂事的小屁孩
文件上传
有点坑吧,弄这么一个简单的东西弄了一天多,身边还有大神指导着,网上各种百度着。
下面总结一下遇到的问题:
文件上传,在页面上传的时候,不要想着去操作绝对路径,浏览器会对客户端的信息进行保护,避免用户信息收到攻击。
在上传图片,或者文件时,使用form表单来操作。
前台通过form表单传输一个流到后台,而不是ajax传递参数到后台,代码如下:
<form action=&
- 怎么实现qq空间批量点赞
换个号韩国红果果
qq
纯粹为了好玩!!
逻辑很简单
1 打开浏览器console;输入以下代码。
先上添加赞的代码
var tools={};
//添加所有赞
function init(){
document.body.scrollTop=10000;
setTimeout(function(){document.body.scrollTop=0;},2000);//加
- 判断是否为中文
灵静志远
中文
方法一:
public class Zhidao {
public static void main(String args[]) {
String s = "sdf灭礌 kjl d{';\fdsjlk是";
int n=0;
for(int i=0; i<s.length(); i++) {
n = (int)s.charAt(i);
if((
- 一个电话面试后总结
a-john
面试
今天,接了一个电话面试,对于还是初学者的我来说,紧张了半天。
面试的问题分了层次,对于一类问题,由简到难。自己觉得回答不好的地方作了一下总结:
在谈到集合类的时候,举几个常用的集合类,想都没想,直接说了list,map。
然后对list和map分别举几个类型:
list方面:ArrayList,LinkedList。在谈到他们的区别时,愣住了
- MSSQL中Escape转义的使用
aijuans
MSSQL
IF OBJECT_ID('tempdb..#ABC') is not null
drop table tempdb..#ABC
create table #ABC
(
PATHNAME NVARCHAR(50)
)
insert into #ABC
SELECT N'/ABCDEFGHI'
UNION ALL SELECT N'/ABCDGAFGASASSDFA'
UNION ALL
- 一个简单的存储过程
asialee
mysql存储过程构造数据批量插入
今天要批量的生成一批测试数据,其中中间有部分数据是变化的,本来想写个程序来生成的,后来想到存储过程就可以搞定,所以随手写了一个,记录在此:
DELIMITER $$
DROP PROCEDURE IF EXISTS inse
- annot convert from HomeFragment_1 to Fragment
百合不是茶
android导包错误
创建了几个类继承Fragment, 需要将创建的类存储在ArrayList<Fragment>中; 出现不能将new 出来的对象放到队列中,原因很简单;
创建类时引入包是:import android.app.Fragment;
创建队列和对象时使用的包是:import android.support.v4.ap
- Weblogic10两种修改端口的方法
bijian1013
weblogic端口号配置管理config.xml
一.进入控制台进行修改 1.进入控制台: http://127.0.0.1:7001/console 2.展开左边树菜单 域结构->环境->服务器-->点击AdminServer(管理) &
- mysql 操作指令
征客丶
mysql
一、连接mysql
进入 mysql 的安装目录;
$ bin/mysql -p [host IP 如果是登录本地的mysql 可以不写 -p 直接 -u] -u [userName] -p
输入密码,回车,接连;
二、权限操作[如果你很了解mysql数据库后,你可以直接去修改系统表,然后用 mysql> flush privileges; 指令让权限生效]
1、赋权
mys
- 【Hive一】Hive入门
bit1129
hive
Hive安装与配置
Hive的运行需要依赖于Hadoop,因此需要首先安装Hadoop2.5.2,并且Hive的启动前需要首先启动Hadoop。
Hive安装和配置的步骤
1. 从如下地址下载Hive0.14.0
http://mirror.bit.edu.cn/apache/hive/
2.解压hive,在系统变
- ajax 三种提交请求的方法
BlueSkator
Ajaxjqery
1、ajax 提交请求
$.ajax({
type:"post",
url : "${ctx}/front/Hotel/getAllHotelByAjax.do",
dataType : "json",
success : function(result) {
try {
for(v
- mongodb开发环境下的搭建入门
braveCS
运维
linux下安装mongodb
1)官网下载mongodb-linux-x86_64-rhel62-3.0.4.gz
2)linux 解压
gzip -d mongodb-linux-x86_64-rhel62-3.0.4.gz;
mv mongodb-linux-x86_64-rhel62-3.0.4 mongodb-linux-x86_64-rhel62-
- 编程之美-最短摘要的生成
bylijinnan
java数据结构算法编程之美
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
public class ShortestAbstract {
/**
* 编程之美 最短摘要的生成
* 扫描过程始终保持一个[pBegin,pEnd]的range,初始化确保[pBegin,pEnd]的ran
- json数据解析及typeof
chengxuyuancsdn
jstypeofjson解析
// json格式
var people='{"authors": [{"firstName": "AAA","lastName": "BBB"},'
+' {"firstName": "CCC&
- 流程系统设计的层次和目标
comsci
设计模式数据结构sql框架脚本
流程系统设计的层次和目标
 
- RMAN List和report 命令
daizj
oraclelistreportrman
LIST 命令
使用RMAN LIST 命令显示有关资料档案库中记录的备份集、代理副本和映像副本的
信息。使用此命令可列出:
• RMAN 资料档案库中状态不是AVAILABLE 的备份和副本
• 可用的且可以用于还原操作的数据文件备份和副本
• 备份集和副本,其中包含指定数据文件列表或指定表空间的备份
• 包含指定名称或范围的所有归档日志备份的备份集和副本
• 由标记、完成时间、可
- 二叉树:红黑树
dieslrae
二叉树
红黑树是一种自平衡的二叉树,它的查找,插入,删除操作时间复杂度皆为O(logN),不会出现普通二叉搜索树在最差情况时时间复杂度会变为O(N)的问题.
红黑树必须遵循红黑规则,规则如下
1、每个节点不是红就是黑。 2、根总是黑的 &
- C语言homework3,7个小题目的代码
dcj3sjt126com
c
1、打印100以内的所有奇数。
# include <stdio.h>
int main(void)
{
int i;
for (i=1; i<=100; i++)
{
if (i%2 != 0)
printf("%d ", i);
}
return 0;
}
2、从键盘上输入10个整数,
- 自定义按钮, 图片在上, 文字在下, 居中显示
dcj3sjt126com
自定义
#import <UIKit/UIKit.h>
@interface MyButton : UIButton
-(void)setFrame:(CGRect)frame ImageName:(NSString*)imageName Target:(id)target Action:(SEL)action Title:(NSString*)title Font:(CGFloa
- MySQL查询语句练习题,测试足够用了
flyvszhb
sqlmysql
http://blog.sina.com.cn/s/blog_767d65530101861c.html
1.创建student和score表
CREATE TABLE student (
id INT(10) NOT NULL UNIQUE PRIMARY KEY ,
name VARCHAR
- 转:MyBatis Generator 详解
happyqing
mybatis
MyBatis Generator 详解
http://blog.csdn.net/isea533/article/details/42102297
MyBatis Generator详解
http://git.oschina.net/free/Mybatis_Utils/blob/master/MybatisGeneator/MybatisGeneator.
- 让程序员少走弯路的14个忠告
jingjing0907
工作计划学习
无论是谁,在刚进入某个领域之时,有再大的雄心壮志也敌不过眼前的迷茫:不知道应该怎么做,不知道应该做什么。下面是一名软件开发人员所学到的经验,希望能对大家有所帮助
1.不要害怕在工作中学习。
只要有电脑,就可以通过电子阅读器阅读报纸和大多数书籍。如果你只是做好自己的本职工作以及分配的任务,那是学不到很多东西的。如果你盲目地要求更多的工作,也是不可能提升自己的。放
- nginx和NetScaler区别
流浪鱼
nginx
NetScaler是一个完整的包含操作系统和应用交付功能的产品,Nginx并不包含操作系统,在处理连接方面,需要依赖于操作系统,所以在并发连接数方面和防DoS攻击方面,Nginx不具备优势。
2.易用性方面差别也比较大。Nginx对管理员的水平要求比较高,参数比较多,不确定性给运营带来隐患。在NetScaler常见的配置如健康检查,HA等,在Nginx上的配置的实现相对复杂。
3.策略灵活度方
- 第11章 动画效果(下)
onestopweb
动画
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- FAQ - SAP BW BO roadmap
blueoxygen
BOBW
http://www.sdn.sap.com/irj/boc/business-objects-for-sap-faq
Besides, I care that how to integrate tightly.
By the way, for BW consultants, please just focus on Query Designer which i
- 关于java堆内存溢出的几种情况
tomcat_oracle
javajvmjdkthread
【情况一】:
java.lang.OutOfMemoryError: Java heap space:这种是java堆内存不够,一个原因是真不够,另一个原因是程序中有死循环; 如果是java堆内存不够的话,可以通过调整JVM下面的配置来解决: <jvm-arg>-Xms3062m</jvm-arg> <jvm-arg>-Xmx
- Manifest.permission_group权限组
阿尔萨斯
Permission
结构
继承关系
public static final class Manifest.permission_group extends Object
java.lang.Object
android. Manifest.permission_group 常量
ACCOUNTS 直接通过统计管理器访问管理的统计
COST_MONEY可以用来让用户花钱但不需要通过与他们直接牵涉的权限
D