- 博客(67)
- 收藏
- 关注
原创 Node.js配置与PostgreSQL连接
Node.js Express框架搭建新建Nodejs主文件app.js创建文件夹studentAchievementManagementBackEnd,在文件夹中创建Nodejs主文件app.jsExpress引入1)使用vscode打开文件夹studentAchievementManagementBackEnd,接下来的操作均在该文件夹下进行2)在vscode的控制台中(打开控制台快捷键为ctrl+反单引号)使用npm全局安装express,安装代码为:npm install exp
2022-05-06 16:04:26
2161
1
原创 vue2与vue3中vuex的使用对比
vue2 methods: { //mapMutations中方法 ...mapMutations(['setLogin', 'setIndex']), toShow(){ //使用mapMutations方法 this.setIndex('3'); this.$router.replace("/couple"); }, logOut(){ //使用mapMutations方法 this.setLogin({Authorization:'',
2022-04-21 23:38:33
1769
原创 vue中axios利用blob实现文件浏览器下载
背景在vue中,使用axios向后台请求数据,但只接收返回的response并不能实现浏览器下载,所以需要借助于blob实现文件的浏览器下载,分为两种情况,一种是get请求,使用params,另一种使用post请求,参数使用formdata传参情景1:get请求,params传参url与参数部分代码:this.axios.get('/api/downloadConfig', { params:{oid:oid}, responseType:'blob', })blob具体下载
2022-04-14 15:33:59
3846
1
原创 单线程的nodejs增加子进程调用依赖于外部文件的cmd服务
背景nodejs使用 child_process 模块很容易创建子进程,该模块一般使用 4 种方式创建子进程,包括spawn(),fork(),exec(),execFile()问题nodejs使用子进程可以实现对服务的cmd调用,例如执行.exe或者python程序,这些程序中很多情况下会依赖与外部文件,所以本文解决两个问题:nodejs如何使用spawn创建子进程并对cmd进行调用cmd调用的服务依赖于外部文件,外部文件位置应该放置在哪里解决方案nodejs使用spawn创建子进程并
2022-04-13 22:29:07
459
原创 使用Promise.all解决nodejs中for循环执行异步函数问题
使用Promise.all解决nodejs中for循环执行异步函数问题在for循环中执行nodejs的异步函数,常常会遇到需要获取异步结果才能进行下一步的情况,那么就需要对这种问题进行解决,下面使用Promise.all解决该问题代码:for(let oid of oids){ //每一次异步执行的返回值为Promise,存储到Promise数组中 let promise = ModelDoc.findOne({oid:oid}).exec(); promises.push(p
2022-04-13 00:00:37
2896
原创 element :on-change事件调用两次的问题
element :on-change事件调用两次的问题原因:具体应用代码:<el-uploadref="configUpload" class="upload-demo" drag action="https://jsonplaceholder.typicode.com/posts/" :on-change="uploadChange" > <el-icon class="el-icon--upload"><upload-f
2022-04-12 11:11:02
6041
7
原创 axios通过post上传xml文件nodejs解析成字符串
前端代码let form = new FormData();//formdata先存起来上传的文件for (let i = 0; i < this.uploadFiles.length; i++) { form.append("datafile", this.uploadFiles[i].raw);}this.$axios.post("/api/test", form).then((res) => { //解析该文件,返回xml字符串,赋值给xml_show if(res.
2022-03-15 16:58:52
1334
原创 C项目中使用C++文件以及extern的使用
问题描述:在c语言项目中需要使用cpp文件的功能函数全局变量均放到了一个头文件中,我称为globals.hcpp文件中使用到了c项目中的globals.h中的变量ElapsedTime这种情况下,编译该项目总是出现LNK2001 无法解析的外部符号 "double ElapsedTime" (?ElapsedTime@@3NA)解决方法:在cpp文件中将C++涉及的头文件直接引用即可#include <cstdio>#include <string>.
2021-11-23 20:21:59
506
原创 dll抛出指针函数方法
在进行模型源码的开发工作中,有调用dll的函数的需求,而且该函数是指针函数,调试良久,特此记录声明导出函数#define DLLEXPORT __declspec(dllexport) 头文件中使用导出函数,声明指针函数,此处可以看到,返回值为指针类型。有一个注意点,DLLEXPORT需要放置到数据类型之前//注意,返回值为指针 DLLEXPORT Pars* getPar();cpp中使用导出函数,书写逻辑代码,同样,DLLEXPORT需要放置到数据类型之前DLLEXPO
2021-11-04 15:48:54
247
原创 CSS书写
清除浮动浮动现象:当父元素不给高度的时候,内部元素不浮动时会撑开,而浮动的时候,父元素变成一条线四种方法:(1)额外标签法(在最后一个浮动标签后,新加一个标签,给其设置clear:both;)如果我们清除了浮动,父元素自动检测子盒子最高的高度,然后与其同高。优点:通俗易懂,方便 缺点:添加无意义标签,语义化差(2)父级添加overflow属性(父元素添加overflow:hidden)触发BFC后,实现了下面两条:1.浮动的元素会被父级计算高度(父级触发了BFC)2.非浮动元素
2021-07-08 19:17:54
108
原创 fatal: unable to access ‘.git/‘: Failed to connect to github.com port 443: Timed out问题
最近遇到往GitHub上推代码出现443的问题,根据网上的教程设置1080端口代理又出现1080: Connection refused,下面是解决方案,我自己的问题是解决了,可供参考,仅需两步走。如果设置过代理,先取消代理查看是否设置代理git config --global http.proxy如果设置取消代理git config --global http.proxygit config --global --unset https.proxy根据自己使用的vpn,查询vpn
2021-06-15 21:31:58
3463
3
原创 Promise.all()用法以及与Promise.race()区别
Promise.all()用法以及与Promise.race()区别Promise.all()会在多个promise全部resolve之后执行.then,而Promise.race()会在任何一个promise resolve后就会执行.then,两者都是promise并行执行代码。看以下实例Promise.all()let count = 0;for(let key in dispUrls){ let promise = new Promise((resolve, reject)=&
2021-06-05 10:11:49
1055
原创 js中json的转换
小问题,记录一下将json字符串例如: '{"name":"li","age":"18"}'转为json对象方法:JSON.parse(fields.dispUrls);将js对象转为json字符串,例如{"now5":"5", "now10":"10", "now20":"20", "now30":"30", "now50":"50"}方法:JSON.stringify(this.dispUrlArr))...
2021-06-04 21:57:51
703
原创 nodejs异步函数串行执行(promise async+await)
需求:三个步骤,后一个步骤进行需要依赖前一个步骤,这里抽象为三个函数,每个函数都包含异步操作。方法包含promise.then串联以及async+await,下面分别进行介绍:promise.then利用promise的then来解决nodejs存在的回调地狱问题,只需要不断的加then即可实现异步函数的串行执行let promise = function(){ return new Promise((resolve, reject)=>{ /*******中间部
2021-06-04 20:28:42
876
原创 promise实现AJAX
var getJSON = function(url){ var promise = new Promise((resolve, reject)=>{ let client = new XMLHttpRequest(); clint.open("GET", url); client.onreadystatechange = handler; client.responseType =...
2021-06-04 19:16:42
124
原创 vueCli引入Cesium
安装cesiumcnpm install cesium --savevue.config.js中配置configureWebpackconst webpack = require("webpack");const CopyWebpackPlugin = require('copy-webpack-plugin')const cesiumSource = 'node_modules/cesium/Build/Cesium'module.exports = { ...//其他的配置.
2021-04-15 20:46:08
715
1
原创 element ui upload问题
今天遇到一个小bug,在使用element的el-upload时出现上传的文件会自动上传并显示进度条,但是上传后文件就消失了。但是我不止上传这一个文件,而且我上传的服务器地址也是我自己指定的,所以出现了问题。这里只需要加上:auto-upload="false"关闭自动上传即可。记录一下,防止以后忘记。...
2021-04-14 20:23:15
453
原创 将字符串拆分成字符数组的几种方法
结构操作符[..."csdn"]//["c", "s", "d", "n"]Array自带方法Array.from("csdn")//["c", "s", "d", "n"]split方法"csdn".split('')//["c", "s", "d", "n"]
2021-03-18 15:08:51
3073
原创 js sort排序双层数组
js可以使用sort函数进行排序操作,例如可以对[1,3,5,6,7]进行排序arr.sort((a,b) => a-b);那么可否对双重数组,并根据双重数组的首元素进行排序呢?答案是可以的,利用sort的回调即可例如对arr = [[2,6],[1,3],[8,10],[9,18]]数组排序,可以这么写:arr = arr .sort((a,b)=> { return a[0] - b[0]; });排序结果为 [[1,3],[2,6],[8,10],[9
2021-03-04 10:59:23
1184
1
原创 JS实现数组的深拷贝
实现数组(一维数组)深拷贝有两种比较常用的方法,一种是使用concat()方法,另一种方式是使用slice()方法concat()方法concat() 方法用于连接两个或多个数组。该方法不会去改变现有的数组,而仅仅会返回被连接数组的一个副本。语法:arrayObject.concat(arrayX,arrayX,......,arrayX)在这里可以利用这一特性,来实现js的深拷贝 res.push(queue.concat());slice()方法slice() 方法可提取字符串的某
2021-01-03 16:12:51
509
1
原创 spring boot中mongodb不启动以及Dao不能被扫描到的问题
问题1:Field clipResultDao in nnu.ogms.demo.controller.GeoAnalysisController required a bean of type ‘Dao’ that could not be found问题2启动spring boot,mongodb虽然已经在pom文件中写了,有这个依赖,但是仍然不能启动(不是报错,是根本没启动).。解决办法:我的情况是在pom依赖中添加了不必要的依赖 <dependency> .
2020-12-09 22:09:47
697
原创 created与mounted生命周期区别
官网上生命周期图示vue生命周期图可以看到created的创建执行是在mounted之上的。在created阶段,浏览器渲染整个HTML文档时,dom节点、css规则树与js文件被解析后,还没有进入被浏览器render的过程,尚未挂载在页面上。因为还没有挂载至$el上,所以我们无法获取到对应的节点,但是此时我们是可以获取到vue中***data***与***methods***中的数据的。在mounted阶段,浏览器已经完成了dom与css规则树的render,并完成对render tree进行了.
2020-12-08 20:01:24
263
原创 vue filter实现模糊搜索功能
需求:实现输入部分字符,匹配含有该部分字符的数据。页面代码<el-input style="width:60%" v-model="workspaceSearch" placeholder="workspace search"></el-input><el-button style="text-align: right;margin: 0 auto;" @click="search()"><i class="el-icon-search">&
2020-12-08 19:48:34
1455
1
原创 vue项目中引入vuex以及vuex简单的使用
vuex安装npm install --save vuex安装成功后,可在package.json中看到安装的版本在store文件夹中的index.js中引入import Vuex from 'vuex';Vue.use(Vuex);在index.js中创建vuex的storeconst store = new Vuex.Store({ state:{ Authorization:localStorage.getItem('Authorization') ? loc
2020-12-07 22:25:54
698
原创 前端axios请求,后端nodejs接收记录
前端axios发送请求,后端nodejs接收请求,并与java中spring boot的注释进行对应req.body(类似于@RequestBody)axiosconst params = new URLSearchParams();params.append('uid',uuidv4())params.append('name',this.name)params.append('description',this.description)params.append('date',util
2020-12-07 22:06:06
670
原创 html中id拼接
用jQuery拼接$("#selectBtn"+index)vue方式拼接 :id="genId(index)"genId(index){ return "selectBtn" + index; },
2020-12-07 16:43:42
1305
原创 vue前端与spring boot后端跨域问题(spring boot默认login页面导致)
最近在写一个前后端分离开发的一个系统,前端为vue-cli构建,后端用spring boot构建。两者之间通过代理端口解决跨域问题。但是一直遇到一个莫名其妙的跨域问题。前端的请求总是跨到了后端接口的/login处,导致一直不能进入正确的接口。问题描述:上图为前端跨域图上图为跨域出错。不管我前端什么接口请求,到了后端一直是到localhost:8081/login,导致我一直以为是前端vue出了问题,但是全局搜索所有包含login的词,都不会导致此问题,后端接口看着也没问题,当时陷入一筹莫展之际。
2020-10-21 09:57:12
692
原创 CrudRepository接口的save方法的记录判断
实现CrudRepository接口的save方法进行记录更新时,遇到了更新记录反而插入新纪录的情况,经过探究发现,还是对源码不熟,对该方法的逻辑未清晰。下面通过这个bug来探究CrudRepository接口的save方法的记录判断。首先看下CrudRepository接口的save方法的源码:@Transactional public <S extends T> S save(S entity) { if (entityInformation.isNew(en
2020-08-18 22:07:26
2677
原创 Linux服务器下配置tensorflow-gpu环境(含cuda、cudnn)
最近需要在服务器上配置tensorflow-gpu的环境来运行深度学习模型,以前在Windows上配置过,也知道一些注意点,这次在Linux下配置,也遇到了很多坑,下面总结一下配置过程,配置是使用Linux下安装的anaconda来进行的。激活虚拟环境我在服务器上安装了anaconda,并且创建了一个python3.6的虚拟环境,命名为tensorflow,在该环境下进行各种库的安装以及环境配置。下面几个步骤的操作均在该虚拟环境下进行。(当然你也可以在anaconda默认环境下进行配置)命令sou
2020-08-14 18:05:39
3679
原创 真正实现截取任意一段InputStream且可存为byte[]、ByteArrayOutputStream 、InputStream
InputStream 的截取在进行一些断点续传的操作中,有时候我们获取的数据源并不是从一个url链接中获取的,而是从一个数据流中拿到的,那么HttpURLConnection提供给我们的setRequestProperty(“Range”,“byte=”)这个数据分段方法便不能适用于我们的需求了,那么对文件的IO流进行一些必要的操作,才能够满足我们的使用需求。下面进行介绍如何实现文件输入流的截取生成断点数组首先应该根据你的线程数目以及文件的总大小生成各个断点的起末点的数组 long[] st
2020-07-29 14:50:18
1157
原创 dom4j解析xml详解
dom4j解析xml在Java后台开发中有时候会碰到解析xml文件的节点、属性等需求,一般比较方便的方法是采用dom4j进行解析。首先是需要解析的xml文件,文件内容如下<?xml version="1.0" encoding="utf-8"?><UDXZip> <Name> <add value="SlopeLimitation.xml"/> </Name> <DataTemplate type="s
2020-07-21 16:26:10
368
原创 IDEA的unstash changes
在IDEA中写好代码准备提交时,首先点击了update,但令我吓一跳的事情发生了,由于在merge的时候出现冲突,merge失败,导致代码全部被覆盖掉了。幸亏IDEA右下角提供了提醒,以及unstash changes工具。该工具利用了git的功能,将未提交的本地更改存储起来,还是很好用的最终,找到未保存的时间节点,点击apply stash,即可恢复未提交的代码。然后就可以解决merge冲突以及提交新的代码啦。...
2020-07-15 21:55:21
4468
原创 spring boot项目中出现spring版本冲突问题
在配置Test时引入了一些spring的依赖,在运行Test的时候,出现了一个java.lang.NoSuchMethodError:org.springframework.beans.factory.annotation.AnnotatedBeanDefinition.setRole(I)V的错误。错误详情如下:Exception sending context initialized event to listener instance of class [org.springframework.we
2020-07-13 21:33:18
1571
原创 Spring Boot中使用mongo的复杂查询查找实体中List「T」中的某个属性
Spring Boot中使用mondo的复杂查询查找实体中List中的某个属性在Spring Boot中使用mongodb数据库来进行增删改查操作,一般在Dao层使用MongoRepository来进行一些基础的增删改查,也可以自己根据MongoRepository提供的方法来写一些需要的增删改查操作。例如findFirstById、findByClassificationsIn、findAllByAuthor等。但是如果需要判断的条件位于查找实体的List字段中,例如:public class Da
2020-07-06 22:00:33
1396
原创 前台请求格式对应后台接收数据记录(包括postman)
Postman请求格式对应后台接收数据汇总前台data格式为一种复杂数据结构的,例如包含List以及单个属性,这时候可以写固定格式的entity来进行传输(注释@RequestBody)//前台var oids =[{}]; for (let i=0;i<this.community_tableData3_self.length;i++){ if (this.model_tableData3_self[i].readS
2020-07-01 19:18:58
665
原创 template might not exist or might not be accessible by any of the configured
我在后台返回json串,但是在前台进行接收的时候,出现thymeleaf无法解析,前台接收不到后台传来的信息。所以前台报500。问题解决:将@Controller更改为@RestController即可解决
2020-06-15 21:44:51
6473
1
原创 element ui的引入与使用
element ui的引入与使用element ui是基于vue的一种ui库,所以在引入element ui之前首先要配置好vue引入vue。引入vue.min.js引入element ui的css。 <link rel="stylesheet" type="text/css" media="screen" href="/static/element-ui/theme-chalk/index.css"/>引入两个element ui的js文件<script sr
2020-06-11 19:33:11
498
原创 非脚手架的vue引用配置问题
非脚手架的vue引用配置问题在前后端不分离的系统中,引入vue,进而使用vue的一些好用的效果。下面简单记录一下如何在前后端不分离的系统即非脚手架中引入vuehtml页面中首先引入vue.min.js以及/axios.min.jsjs文件中格式为var testUpload = new Vue({ el:"#app", data(){ return{ } }, methods:{ }, mounted(){
2020-06-11 19:16:22
390
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人