- React Native常见报错解决整理
飞翔的熊blabla
react
转载于:https://blog.csdn.net/u010127332/article/details/83622209ReactNative从开发环境到入门练手,再到跑几个开源demo的整个过程中,遇到了不少问题,以下是对报错现象及解决方法的记录:Mac上运行iOS项目问题1:npmERR!UnexpectedendofJSONinputwhileparsingnear‘…ire-main-f
- Dest1ny漏洞库:用友 U8-CRM 系统 ajaxgetborrowdata.php 存在 SQL 注入漏洞
Dest1ny(沉淀版)
phpsql开发语言
用友U8-CRM系统ajaxgetborrowdata.php存在SQL注入漏洞,文件多个方法存在SQL注入漏洞,未经身份验证的攻击者通过漏洞执行任意SQL语句,调用xp_cmdshell写入后门文件,执行任意代码,从而获取到服务器权限。hunterapp.name="用友CRM"fofatitle="用友U8CRM"pocPOST/borrowout/ajaxgetborrowdata.php?
- el-date-picker限制当前日期以后的日期不可选
Orange301511
大前端vue.jselementuijavascript
el-date-picker限制当前日期以后的日期不可选解决方案exportdefault{data(){return{setDateRange:{disabledDate:time=>{//禁用今天之后的日期【当前天可选】returntime.getTime()>Date.now()+86400000-5;}}}}在el-date-picker添加属性:picker-options=“setDa
- python 使用json.loads报错:json.decoder.JSONDecodeError: Expecting value: line x column x (char x)问题的解决方式
Joy and courage
jsonpython开发语言
python使用json.loads报错:json.decoder.JSONDecodeError:Expectingvalue:linexcolumnx(charx)问题的解决方式问题使用Python得到了一个response.text()的字符串,想把其转换成json格式保存使用,但是使用json.loads(response.text())的方式会报错:json.decoder.JSONDe
- VScode保持vue语法高亮的方式
「已注销」
vscodevue.jside编辑器前端
VScode保持vue语法高亮的方式:1.安装插件:vetur。打开VScode,Ctrl+P然后输入extinstallvetur然后回车点安装即可。2.在VSCode中使用Ctrl+Shift+P打开命令面板,输入Preferences:OpenSettings(JSON)。3.在配置对象里加上key和value1"emmet.syntaxProfiles":{2"vue-html":"htm
- mc服务器优化mod,【教程】minecraft服务器优化教程 让你用低配置带更多人!
陈悦天
mc服务器优化mod
该楼层疑似违规已被系统折叠隐藏此楼查看此楼相信很多人都知道,开服需要通过一个写着一串代码的启动脚本来启动服务器,启动客户端也同理,只是客户端帮你简化了这件事。现在就来教大家如何通过修改启动Java脚本来优化Minecraft客户/服务端。以下是启动脚本java-server-d64-Xmx3550M-Xms3550M-Xss256k-XX:PermSize=256m-XX:MaxPermSize=
- 【Prometheus】【 Blackbox Exporter】CentOS 上安装 Blackbox Exporter 的操作步骤
张声录1
prometheus实战prometheuscentoslinux
目录1.下载BlackboxExporter1.1下载稳定版二进制文件1.2解压文件1.3移动可执行文件⚙️2.配置BlackboxExporter2.1创建配置文件2.2添加基础配置️3.创建Systemd服务3.1创建systemd单元文件3.2添加以下内容3.3重新加载Systemd3.4检查服务状态4.验证BlackboxExporter是否正常运行4.1访问Web界面5.在Prometh
- centos7上部署prometheus并结合node_exporter监控Linux主机
Jiangxl~
部署prometheus并结合node_exporter监控Linux主机2.部署prometheus2.1.环境准备IP主机名服务192.168.81.250prometheus-serverprometheus192.168.81.170grafanagrafana192.168.81.160agent192_168_81_160基础准备[root@prometheus-server~]#se
- blackbox_exporter部署
XMYX-0
prometheus监控linuxweb安全系统安全
文章目录简单介绍环境软件包下载CSDN官网部署解压blackbox.yml启动配置为系统服务blackbox_exporter.service启动Grafana监控配置prometheus.yml修改prometheus监控&插件方案总结简单介绍BlackboxExporter是一个用于监控外部服务和网络端点可达性的开源工具,它是由Prometheus社区维护的一个官方Exporter。Black
- Prometheus 监控服务端口、网站状态等(黑盒监测)
寰宇001
监控/自动化工具
1、blackbox_exporter介绍blackbox_exporter是Prometheus官方提供的exporter之一,可以提供http、dns、tcp、icmp的监控数据采集。blackbox_exporter应用场景:HTTP测试:定义RequestHeader信息,判断Httpstatus/HttpResponesHeader/HttpBody内容TCP测试:业务组件端口状态监听,
- Spring Bug解决
爱掉发的小龙
springbugjava
报错:Exceptioninthread"main"org.springframework.beans.factory.NoUniqueBeanDefinitionException:Noqualifyingbeanoftype'com.itxl.spring6.iocxml.User'available:expectedsinglematchingbeanbutfound2:user,user1
- node-exporter安装
fanqiliang630
kubernetesdockeryamlcentoszabbix
node-exporter可以提供相当丰富的系统资源指标,在指标收集中有举足轻重的地位。编写文章之时所参考的文档和相关操作都是有效的,但是软件版本更新很快,不应完全照抄。1.node-exporter部署:参考博客:https://www.wqblogs.com/2020/04/17/k8s%E9%83%A8%E7%BD%B2node-exporter/#%E4%BA%A4%E4%BB%98nod
- C#导出excel:
weixin_44120543
c#开发语言
前端:exportfunctionxxxx(query){returnrequest({url:'xxxx/xxxxx',method:'get',params:query,responseType:'blob'//设置响应类型为二进制数据})}xxxx(){this.queryForm.wayExport=0;//这里标记导出类型xxx(this.queryForm).then((respons
- element-tree组件连接线以及懒加载
{{data.fvAreaName}}default-expand-all为节点数默认全部展开,懒加载适用importbusfrom'@/utils/eventBus.js'import{TableAPI}from'@/api/valuation/my_valuation.js'exportdefault{props:{treelist:Array,ShowSave:Boolean,taskInf
- solvepnp
weixin_30677617
人工智能
CV_EXPORTS_WboolsolvePnP(InputArrayobjectPoints,-世界坐标系下的控制点的坐标,vector的数据类型在这里可以使用InputArrayimagePoints,-在图像坐标系下对应的控制点的坐标。vector在这里可以使用InputArraycameraMatrix,-相机的内参矩阵InputArraydistCoeffs,-相机的畸变系数Output
- 日志收集Day008
ccnnlxc
java开发语言
1.zk集群优化修改zookeeper的堆内存大小,一般情况下,生产环境给到2G足以,如果规模较大可以适当调大到4G。(1)配置ZK的堆内存vim/app/softwares/zk/conf/java.envexportJAVA_HOME=/sortwares/jdk1.8.0_291exportJVMFLAGS="-Xms256m-Xmx256m$JVMFLAGS"EOF(2)同步文件到其他节点
- 前端工程化都有哪些及优化方案
光影少年
前端前端框架基带工程
一、前端工程化的主要组成部分1.模块化模块化是将复杂的程序分解为若干小的独立模块,每个模块负责一个功能。常用的模块化方案包括:ES6模块(import/export)CommonJS(require/module.exports,Node.js中常用)AMD(define/require,如RequireJS)优化方案:尽量使用ES6模块,因为它是JavaScript的标准,支持更好的静态分析和T
- 力扣动态规划-12【算法学习day.106】
南宫生
算法#动态规划算法leetcode动态规划java数据结构
前言###我做这类文章一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?建议灵神的题单和代码随想录)和记录自己的学习过程,我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴!!!习题1.乘积最大子数组题目链接:152.乘积最大子数组-力扣(LeetCode)题面:代码:classSolution{publicintmaxProd
- coxphfit+matlab,计算Cox比例风险模型的coxph和cph函数有什么区别?
Mandy Liu
coxphfit+matlab
RCS=受限立方样条。您可以通过查看help(package="rms")找到函数的帮助文件下面是源代码的摘录,所以你可以看到那里的cph函数调用coxph.fit功能(的coxph在survival包胆量)>cph[...]if(nullmod)f=NULLelse{ytype=attr(Y,"type")fitter=if(method=="breslow"||method=="efron")
- el-menu无限递归组件完美版本
Mr.Meng_95
项目vue
el-menu无限递归组件完美版本备注:修复菜单和子菜单高亮问题,及刷新后被点击子菜单依旧打开的bug效果代码index.vue(递归组件)importMenuSunfrom'../components/menutree.vue'exportdefault{components:{MenuSun},data(){return{menuList:[{name:'一组',id:'1',children
- mongodb explain分析
记录下mongodbexplain信息,使用的mongodb版本为4.0.9项目关联查询了两张表用户表与用户登录日志表,分别为user_info与user_login_info,脚本如下:db.t_user_info.explain('allPlansExecution').aggregate([{$lookup:{from:"t_user_login_info",localField:"user
- C++程序设计题解:日期排序
小朋友爱学习
我的算法题解c++程序设计
C++程序设计题解:日期排序题目描述:有一些日期,日期格式为“MM/DD/YYYY”。编程将其按日期大小排列。样例输入:12/31/200510/21/200302/12/200410/22/200311/30/200515/12/1999样例输出:15/12/199910/21/200310/22/200302/12/200411/30/200512/31/2005我的代码:#includeus
- 前端常见的多种正则验证方法以及js判断语法
前端-文龙刚
JavascriptVue正则表达式vue.jsjavascript
1.邮箱exportconstisEmail=(s)=>{return/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s)}2.手机号码exportconstisMobile=(s)=>{return/^1[0-9]{10}$/.test(s)}3.电话号码exportconstisPhone=(s)=>
- ZZULIOJ1211: 日期排序
Wanghy__
zzuliojc语言
1211:日期排序题目描述:有一些日期,日期格式为“MM/DD/YYYY”。编程将其按日期大小排列。样例输入:15/12/199910/21/200310/22/200302/12/200411/30/200512/31/2005样例输出:15/12/199910/21/200310/22/200302/12/200411/30/200512/31/2005代码:#include#include#
- vite build报错 Unexpected token (Note that you need plugins to import files that are not JavaScript)
实践是最好的老师
vuejavascript前端vue.js
原因是我在console.log语句想打印出环境变量console.log(‘import.meta.env.MODE’,import.meta.env.MODE)删除上面console.log语句就能正常打包了,并下面语句能正常打包和运行constconfig:any={dev:{baseUrl:‘http://baiduTest.com’//测试接口域名},master:{baseUrl:‘h
- .NET构架之我见
qdzx2008
项目管理.Net.netmicrosoftmvclayer架构设计application
近期构架的帖子很多,集中下大家来讨论三层架构的困惑:为什么要分出数据访问层http://community.csdn.net/Expert/TopicView.asp?id=4946236三层架构之我见——不同于一般的三层架构。也许对您会有所启发!http://community.csdn.net/Expert/TopicView.asp?id=4949724关于分层和架构的思考--请重视业务逻辑
- vue高级组件封装 element组件二次封装
沉迷...
vue3vue.jsjavascriptelementui
vue高级组件封装element组件二次封装相关解读使用defineOptions定义组件名称使用useSlots获取插槽获取父组件传递过来的dialog组件的插槽通过循环直接通过动态插槽插入el-dialog组件中使用defineExpose暴露组件方法父组件可通过ref直接调用使用v-bind="$attrs"绑定父组件传递的属性使用v-bind="slotProps"绑定插槽属性经过这些处理
- UE5 特效
qq_42863961
虚幻基础ue5
能帮到你的话,就给个赞吧文章目录postprocessexposurebloomvignettesaturationunboundmaterial材质蓝图altzbasecolorconstant3Vectorroughnessconstantmetallicconstantpbrroughnessmetallicmakemorerealmakesomeareasrougherthanothers
- activiti 自动完成第一个任务
杨过姑父
springjava后端
有时候后我们开启一个流程实例的时候需要将第一个任务自动完成例如:我们开启一个请假申请,需要自动将提交请假申请的任务完成,自动跳到下一个审批任务通过监听器完成:监听器类型选择:delegateExpression表示将监听器的请求委托给spring容器中的一个实例${priceEvaluationListener}用来指定要委托的springbean的名字,例如@Slf4j@Componentpub
- spyder python教程_Python语言开发环境之Spyder
weixin_39791386
spyderpython教程
https://blog.csdn.net/qq_34706955/article/details/80807091Spyder(ScientificPYthonDevelopmentEnviRonment)是一个强大的交互式Python语言开发环境。它有一个Editor(编辑器)用于编写代码;Console(控制台)可以评估代码并且在任何时候都可以看到运行结果;VariableExplorer(
- Hadoop(一)
朱辉辉33
hadooplinux
今天在诺基亚第一天开始培训大数据,因为之前没接触过Linux,所以这次一起学了,任务量还是蛮大的。
首先下载安装了Xshell软件,然后公司给了账号密码连接上了河南郑州那边的服务器,接下来开始按照给的资料学习,全英文的,头也不讲解,说锻炼我们的学习能力,然后就开始跌跌撞撞的自学。这里写部分已经运行成功的代码吧.
在hdfs下,运行hadoop fs -mkdir /u
- maven An error occurred while filtering resources
blackproof
maven报错
转:http://stackoverflow.com/questions/18145774/eclipse-an-error-occurred-while-filtering-resources
maven报错:
maven An error occurred while filtering resources
Maven -> Update Proje
- jdk常用故障排查命令
daysinsun
jvm
linux下常见定位命令:
1、jps 输出Java进程
-q 只输出进程ID的名称,省略主类的名称;
-m 输出进程启动时传递给main函数的参数;
&nb
- java 位移运算与乘法运算
周凡杨
java位移运算乘法
对于 JAVA 编程中,适当的采用位移运算,会减少代码的运行时间,提高项目的运行效率。这个可以从一道面试题说起:
问题:
用最有效率的方法算出2 乘以8 等於几?”
答案:2 << 3
由此就引发了我的思考,为什么位移运算会比乘法运算更快呢?其实简单的想想,计算机的内存是用由 0 和 1 组成的二
- java中的枚举(enmu)
g21121
java
从jdk1.5开始,java增加了enum(枚举)这个类型,但是大家在平时运用中还是比较少用到枚举的,而且很多人和我一样对枚举一知半解,下面就跟大家一起学习下enmu枚举。先看一个最简单的枚举类型,一个返回类型的枚举:
public enum ResultType {
/**
* 成功
*/
SUCCESS,
/**
* 失败
*/
FAIL,
- MQ初级学习
510888780
activemq
1.下载ActiveMQ
去官方网站下载:http://activemq.apache.org/
2.运行ActiveMQ
解压缩apache-activemq-5.9.0-bin.zip到C盘,然后双击apache-activemq-5.9.0-\bin\activemq-admin.bat运行ActiveMQ程序。
启动ActiveMQ以后,登陆:http://localhos
- Spring_Transactional_Propagation
布衣凌宇
springtransactional
//事务传播属性
@Transactional(propagation=Propagation.REQUIRED)//如果有事务,那么加入事务,没有的话新创建一个
@Transactional(propagation=Propagation.NOT_SUPPORTED)//这个方法不开启事务
@Transactional(propagation=Propagation.REQUIREDS_N
- 我的spring学习笔记12-idref与ref的区别
aijuans
spring
idref用来将容器内其他bean的id传给<constructor-arg>/<property>元素,同时提供错误验证功能。例如:
<bean id ="theTargetBean" class="..." />
<bean id ="theClientBean" class=&quo
- Jqplot之折线图
antlove
jsjqueryWebtimeseriesjqplot
timeseriesChart.html
<script type="text/javascript" src="jslib/jquery.min.js"></script>
<script type="text/javascript" src="jslib/excanvas.min.js&
- JDBC中事务处理应用
百合不是茶
javaJDBC编程事务控制语句
解释事务的概念; 事务控制是sql语句中的核心之一;事务控制的作用就是保证数据的正常执行与异常之后可以恢复
事务常用命令:
Commit提交
- [转]ConcurrentHashMap Collections.synchronizedMap和Hashtable讨论
bijian1013
java多线程线程安全HashMap
在Java类库中出现的第一个关联的集合类是Hashtable,它是JDK1.0的一部分。 Hashtable提供了一种易于使用的、线程安全的、关联的map功能,这当然也是方便的。然而,线程安全性是凭代价换来的――Hashtable的所有方法都是同步的。此时,无竞争的同步会导致可观的性能代价。Hashtable的后继者HashMap是作为JDK1.2中的集合框架的一部分出现的,它通过提供一个不同步的
- ng-if与ng-show、ng-hide指令的区别和注意事项
bijian1013
JavaScriptAngularJS
angularJS中的ng-show、ng-hide、ng-if指令都可以用来控制dom元素的显示或隐藏。ng-show和ng-hide根据所给表达式的值来显示或隐藏HTML元素。当赋值给ng-show指令的值为false时元素会被隐藏,值为true时元素会显示。ng-hide功能类似,使用方式相反。元素的显示或
- 【持久化框架MyBatis3七】MyBatis3定义typeHandler
bit1129
TypeHandler
什么是typeHandler?
typeHandler用于将某个类型的数据映射到表的某一列上,以完成MyBatis列跟某个属性的映射
内置typeHandler
MyBatis内置了很多typeHandler,这写typeHandler通过org.apache.ibatis.type.TypeHandlerRegistry进行注册,比如对于日期型数据的typeHandler,
- 上传下载文件rz,sz命令
bitcarter
linux命令rz
刚开始使用rz上传和sz下载命令:
因为我们是通过secureCRT终端工具进行使用的所以会有上传下载这样的需求:
我遇到的问题:
sz下载A文件10M左右,没有问题
但是将这个文件A再传到另一天服务器上时就出现传不上去,甚至出现乱码,死掉现象,具体问题
解决方法:
上传命令改为;rz -ybe
下载命令改为:sz -be filename
如果还是有问题:
那就是文
- 通过ngx-lua来统计nginx上的虚拟主机性能数据
ronin47
ngx-lua 统计 解禁ip
介绍
以前我们为nginx做统计,都是通过对日志的分析来完成.比较麻烦,现在基于ngx_lua插件,开发了实时统计站点状态的脚本,解放生产力.项目主页: https://github.com/skyeydemon/ngx-lua-stats 功能
支持分不同虚拟主机统计, 同一个虚拟主机下可以分不同的location统计.
可以统计与query-times request-time
- java-68-把数组排成最小的数。一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的。例如输入数组{32, 321},则输出32132
bylijinnan
java
import java.util.Arrays;
import java.util.Comparator;
public class MinNumFromIntArray {
/**
* Q68输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。
* 例如输入数组{32, 321},则输出这两个能排成的最小数字32132。请给出解决问题
- Oracle基本操作
ccii
Oracle SQL总结Oracle SQL语法Oracle基本操作Oracle SQL
一、表操作
1. 常用数据类型
NUMBER(p,s):可变长度的数字。p表示整数加小数的最大位数,s为最大小数位数。支持最大精度为38位
NVARCHAR2(size):变长字符串,最大长度为4000字节(以字符数为单位)
VARCHAR2(size):变长字符串,最大长度为4000字节(以字节数为单位)
CHAR(size):定长字符串,最大长度为2000字节,最小为1字节,默认
- [强人工智能]实现强人工智能的路线图
comsci
人工智能
1:创建一个用于记录拓扑网络连接的矩阵数据表
2:自动构造或者人工复制一个包含10万个连接(1000*1000)的流程图
3:将这个流程图导入到矩阵数据表中
4:在矩阵的每个有意义的节点中嵌入一段简单的
- 给Tomcat,Apache配置gzip压缩(HTTP压缩)功能
cwqcwqmax9
apache
背景:
HTTP 压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求网页后,从服务器端将网页文件压缩,再下载到客户端,由客户端的浏览器负责解压缩并浏览。相对于普通的浏览过程HTML ,CSS,Javascript , Text ,它可以节省40%左右的流量。更为重要的是,它可以对动态生成的,包括CGI、PHP , JSP , ASP , Servlet,SHTML等输出的网页也能进行压缩,
- SpringMVC and Struts2
dashuaifu
struts2springMVC
SpringMVC VS Struts2
1:
spring3开发效率高于struts
2:
spring3 mvc可以认为已经100%零配置
3:
struts2是类级别的拦截, 一个类对应一个request上下文,
springmvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应
所以说从架构本身上 spring3 mvc就容易实现r
- windows常用命令行命令
dcj3sjt126com
windowscmdcommand
在windows系统中,点击开始-运行,可以直接输入命令行,快速打开一些原本需要多次点击图标才能打开的界面,如常用的输入cmd打开dos命令行,输入taskmgr打开任务管理器。此处列出了网上搜集到的一些常用命令。winver 检查windows版本 wmimgmt.msc 打开windows管理体系结构(wmi) wupdmgr windows更新程序 wscrip
- 再看知名应用背后的第三方开源项目
dcj3sjt126com
ios
知名应用程序的设计和技术一直都是开发者需要学习的,同样这些应用所使用的开源框架也是不可忽视的一部分。此前《
iOS第三方开源库的吐槽和备忘》中作者ibireme列举了国内多款知名应用所使用的开源框架,并对其中一些框架进行了分析,同样国外开发者
@iOSCowboy也在博客中给我们列出了国外多款知名应用使用的开源框架。另外txx's blog中详细介绍了
Facebook Paper使用的第三
- Objective-c单例模式的正确写法
jsntghf
单例iosiPhone
一般情况下,可能我们写的单例模式是这样的:
#import <Foundation/Foundation.h>
@interface Downloader : NSObject
+ (instancetype)sharedDownloader;
@end
#import "Downloader.h"
@implementation
- jquery easyui datagrid 加载成功,选中某一行
hae
jqueryeasyuidatagrid数据加载
1.首先你需要设置datagrid的onLoadSuccess
$(
'#dg'
).datagrid({onLoadSuccess :
function
(data){
$(
'#dg'
).datagrid(
'selectRow'
,3);
}});
2.onL
- jQuery用户数字打分评价效果
ini
JavaScripthtmljqueryWebcss
效果体验:http://hovertree.com/texiao/jquery/5.htmHTML文件代码:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>jQuery用户数字打分评分代码 - HoverTree</
- mybatis的paramType
kerryg
DAOsql
MyBatis传多个参数:
1、采用#{0},#{1}获得参数:
Dao层函数方法:
public User selectUser(String name,String area);
对应的Mapper.xml
<select id="selectUser" result
- centos 7安装mysql5.5
MrLee23
centos
首先centos7 已经不支持mysql,因为收费了你懂得,所以内部集成了mariadb,而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb,以下为卸载mariadb,安装mysql的步骤。
#列出所有被安装的rpm package rpm -qa | grep mariadb
#卸载
rpm -e mariadb-libs-5.
- 利用thrift来实现消息群发
qifeifei
thrift
Thrift项目一般用来做内部项目接偶用的,还有能跨不同语言的功能,非常方便,一般前端系统和后台server线上都是3个节点,然后前端通过获取client来访问后台server,那么如果是多太server,就是有一个负载均衡的方法,然后最后访问其中一个节点。那么换个思路,能不能发送给所有节点的server呢,如果能就
- 实现一个sizeof获取Java对象大小
teasp
javaHotSpot内存对象大小sizeof
由于Java的设计者不想让程序员管理和了解内存的使用,我们想要知道一个对象在内存中的大小变得比较困难了。本文提供了可以获取对象的大小的方法,但是由于各个虚拟机在内存使用上可能存在不同,因此该方法不能在各虚拟机上都适用,而是仅在hotspot 32位虚拟机上,或者其它内存管理方式与hotspot 32位虚拟机相同的虚拟机上 适用。
- SVN错误及处理
xiangqian0505
SVN提交文件时服务器强行关闭
在SVN服务控制台打开资源库“SVN无法读取current” ---摘自网络 写道 SVN无法读取current修复方法 Can't read file : End of file found
文件:repository/db/txn_current、repository/db/current
其中current记录当前最新版本号,txn_current记录版本库中版本