- 博客(26)
- 收藏
- 关注
原创 Node 22.11使用ts-node报错
最近开始学ts,发现使用ts-node直接运行ts代码的时候怎么都不成功,折腾了一番感觉是这个node版本太高还不支持,-g代表全局安装,也可以开发环境安装,-g换成--save-dev。使用这个命令也是不会直接产生js文件的。于是我找了一个替代品tsx。
2025-04-01 03:25:49
180
原创 Express框架中的中间件注册一定要在路由前面吗?
在路由前面注册中间件呢也是因为如果在路由后面注册,处理完路由是不会处理那个中间件。那问过deepseek之后呢,发现并不是所有的中间件注册都要在路由前面注册。5.连续调用多个中间件时,多个中间件之间,共享req和res对象。但是错误处理中间件需要捕获所有路由中抛出的错误,因此必须注册在。3.执行完中间件的业务代码之后,勿忘调用next()函数。也像上面的例子一样,错误级别的中间件需要在路由后面注册。2.客户端发过来的请求,可以连续调用多个中间件进行处理。这个错误级别的中间件却是在路由后面注册的。
2025-03-20 16:28:20
113
原创 使用Node的http模块创建web服务,给客户端返回html页面时,css失效的根本原因(有助于理解http)
但是style.css的Content-Type也为text/html;可以看到确实是请求到了三个静态文件,其中index.html的Content-Type为。同样,index.js亦如(但是index.js脚本没有失效)text/html;charset=utf-8,没什么问题。看起来没有什么问题,但是当我在浏览器地址输入。打开调试工具,Content-Type正常了。,因为是80端口,所以可以省略端口号。这个时候,页面就正常了。这是我的静态文件目录。我们来f12调试一下。
2025-03-15 23:02:22
323
原创 (包清楚解疑)ES6中__dirname和__filename不见了吗?,到底怎么用
假设我们随便找个目录(假设为E盘根目录),使用node .\nodeex\readAndWriteFile时,会拼接根目录(E)和'成绩.txt'就会出问题,如下图。当我们在使用Node进行读写文件的操作的时候,如果代码中使用的是相对目录(不使用这两个变量的时候),我们在用node命令运行代码的时候,会。我们知道,在commonJs中,__dirname和__filename分别表示当前js文件所在目录路径和所在路径的。那有没有一种办法可以解决上面两种问题呢,有的,xd有的,在commonJs中,
2025-03-14 21:39:37
398
原创 JavaScript的展开运算符的浅拷贝在Vue+Element-Plus中的妙用
功能就是当对表格中的数据既需要新增,也需要修改的时候(需要回显数据),有一个open方法,其中row为表格的一行数据对象,由父组件传来。这里很常见的写法就是像注释里的一样,判断是编辑还是新增,但是在新增的时候需要清空中间对象formModel的值,否则当点击新增的时候如果之前点击了编辑修改,就会已经存在了回显(formModel会存有存着之前的数据),这时候要重置。浅拷贝,与传过来的row对象共享一块内存,row有数据就是编辑,row没数据就是新增,不会回显。
2025-03-07 21:11:40
224
原创 弄懂Vue里面的插槽用法slots,以Element-plus中的用法为例
比如在菜单用法中,涉及到子菜单的时候,举下图的例子,这时候菜单项会有两种,一种是像“个人中心”这样并不需要有具体内容以及路由配置的菜单,一种是里面的“基本资料”、“更换头像”等等,这些需要跳转对应路由,element-plus的菜单就是模板,里面有两种插槽,“个人中心”为具名插槽(名字为title),里面的为默认插槽,我们在使用的时候就可以在具名插槽加上属性名,加上所需要的东西。即子组件中,如果之后别的组件需要应用这个组件,并且想在里面加东西,那么这个时候可以把想加东西的位置留出来,怎么留出来呢?
2025-03-05 02:01:47
342
原创 Element-plus按需导入时ElMessage失效(Eslint9.x,Vue3)
首先明确一点,如果使用element-plus的按需自动导入(如下图),在用到Message消息提示的时候,不需要去使用import {ElMessage} from 'element-plus',如果手动在某个组件中使用import {ElMessage} from 'element-plus',则会出现这个消息提示失败的现象,这时候只需要删去引入或者是注释掉,同时如果用了Eslint,这时候会报错,我们需要在Eslint(我用的是9.20.1版本)的配置文件中加上全局变量,
2025-03-02 23:16:49
238
原创 Vue3中单行箭头函数的用法以及注意事项
我们知道在前端中,如果是单行箭头函数,则可以省略大括号(0个参数仍需写参数括号),上面两种方法都能顺利监视对象中的age属性。同时也省略了return关键字。
2025-02-02 22:26:51
124
原创 解决项目还在运行,关闭vscode窗口之后如何停掉原有的项目,防止端口占用。
总结一下,如果一个node项目在运行,这时候不去ctrl+c停止这个项目,直接关闭ide,是不会杀死这个进程的,它仍会继续运行,如果这时候重新运行项目,我觉得node发现7010端口被占用,就会去寻找下一个还未被使用的端口,我们为了防止他们占用过多资源以及看着不爽,直接直接结束之前的进程,然后就重新回到项目配置的7010端口了。直接一个ctrl+shift+esc打开资源管理器,搜索这个pid,好家伙果然是你!我果断一手结束任务,重新运行项目,诶嘿,重新回到了7010端口。
2024-12-18 20:35:01
1115
2
原创 Vue项目部署上线之后,公网访问时其URL重复,导致URL错误报404
那么这是为什么呢,检查了一通本地项目,查阅一番资料后发现,居然是上线环境中的url忘记加上http协议了。那么加上之后,就正常了。
2024-12-12 16:50:01
195
原创 elementui分页模糊搜索的bug
但是如果我在默认查询的时候,把下面的页数调到2(我这里根据tea模糊查询只有两条数据,只够一页),就会出现下面的bug(第一张图还没有查,只是默认查询的第三页)由于在其他地方,比如创建组件周期的时候用到了默认的pageNum的load(),所有这里需要做一个判断,判断是否传入了pageNum。我们只需要在点击查询的时候强行把当前页面置为1即可。经过这样的修改之后,刚才的bug也就解决了。可以看到条数是正确的,但是没有正确显示数据。这里正常情况下模糊查询到的数据应该如下。我用到的是完整功能的样式。
2024-12-08 11:36:24
145
原创 Vue中子组件传递数据给父组件应用以及深拷贝和浅拷贝
现在有这么一个需求:父组件为显示用户信息部分,它的其中一个子组件实现的功能为:修改用户信息,而父组件也显示当前用户的头像,子组件需要修改头像并把数据传递给父组件来显示。如果直接传给父组件这些数据(对象类型),即采用对象直接赋值的方法,这样的话,我们在没有保存用户信息的情况下,父组件的头像信息就已经被更新(如下图),这就是。子组件的保存部分和userInfo对象(handleAvatarSuccess方法为上传头像成功后的钩子方法,见elementui的上传文件)父组件的user对象。
2024-12-06 02:16:18
274
原创 vue-router的history模式与token结合的坑
当我做到使用路由守卫来控制用户访问的页面的时候遇到了这个问题:用户分为两类:教师和学生,教师是可以访问/user路由的,而学生访问这个路由的时候,会跳转到自己做的没有权限的页面,而且根据用户类型的不同,使用v-if来显示或隐藏一些组件。继续沿用history模式的vue-router,修改/user路由为/student(经过实验发现,只要是路由改成/userxxx,例如/users,/user1,/user2之类的都会出现这样的情况),我索性改成/student。// header里面传来的参数。
2024-12-01 14:20:59
942
原创 解决Springboot使用jwt验证时jwt的creator方法未找到json.jsonMapper
我并没有在pom里面引入这个依赖,而且jwt要用到这个依赖,但是jwt不可能引入一个版本不兼容的依赖,很奇怪,这时候该想到一个东西了,上上个截图显示jackson的版本是2.9.9,很奇怪,于是我在pom里面引入jackson-2.19版本,结果无法引入。今天用jwt的token做校验的时候,也是遇到了一个问题,报500,是服务器这边有问题,也就是后端代码出了问题。我下载这个类的源码,发现果真是少了这个类(jsonMapper,甚至少了json包)图中标红了。怀疑可能是jackson包的版本问题,
2024-11-28 16:33:50
314
原创 前端Vue配置跨域为什么失效
如上配置之后,需要重新npm run serve启动前端,再次请求数据,发现还是因为跨域问题无法获取到数据,又为什么呢?因为后端同样需要设置跨域cors(我后端用的是springboot框架)前后端分离已经是非常常见了,但是前端向后端请求数据时,如果不做配置,一定会出现跨域问题。为什么会有跨域问题呢?这是因为浏览器的同源策略。我前端用的7000端口,所以上面是7000端口,那么这样配置之后,跨域问题就可以完美解决啦!
2024-11-24 16:03:10
731
原创 MD5(Hash函数算法)+盐值加密算法详解
MD5算法属于Hash函数算法的一种。在1992年,Rivest在MD4算法的基础上设计出了MD5算法,其安全性要比MD4算法的安全性高。但是该加密算法于2004年被王小云教授破解,导致其在安全性上大打折扣。于是要想办法加强该算法的安全性,其中一种方法就是采用加盐值的方法。本文先介绍Hash函数的定义和性质,再介绍针对Hash函数的攻击方法,再具体分析MD5算法的原理,最后采用加盐值的方法,增强该加密算法的安全性。定义:Hash函数是一个映射 h:{0,1}*→{0,1}n;
2024-11-23 21:43:13
1867
1
原创 Windows配置maven和idea整合maven
找系统变量,添加一个,名称为:MAVEN_HOME(名字任取,只要保证Path里面也是这个名字就行),路径:F:\apache-maven-3.6.3(为解压的目录),再在Path添加,名称为%MAVEN_HOME%\bin。找一个文件夹解压,解压后的根目录是这样,以这个目录为准,主要看bin文件夹,后面需要配置环境变量。cmd命令行输入mvn -verison,可以看到为下载的版本即配好了。maven作用:更好的管理自己的依赖包。idea整合maven项目。2022版idea……
2024-08-18 22:00:06
367
原创 Java的Date.getTime()与北京时间
/加8小时才是北京时间。Java的Date.getTime()得到的是UTC时间,也就是比北京时间少8小时。如果要得到北京时间,就在getTime+8*60*60*1000。我这里是做更新时间操作,加了才是北京时间。
2024-05-01 21:18:07
561
1
原创 Java的setDate()的巨坑!!!(编译不通过,很难发现为什么)
flightEntity.getDepartureTime()得到的是java.util.Date类型的数据,与目标数据库java.sql.Date类型并不一样,这个时候需要把类型转换一下才行。而如果需要用Java修改该表格里的数据,通常会写一个方法,进行修改,一般传进去的参数为该实体类。主要是弄混淆了java.util.Date和java.sql.Date。这个时候idea就会报错,编译都无法通过,那么原因是什么呢?在做项目的时候,有时候数据库表格会存储date类型的数据。就像下面的是正确的。
2024-04-21 01:59:26
407
原创 详解sql注入(当业务代码使用sql拼接时)
也就是让sql语句变成:select *from user where user='user1' and password='' or 1='1';由于后面是or语句,并且后面的or语句永远成立,因此会在表中查询到结果,满足登录成功条件,就会登录成功。拿select *from user where user='' and password='';上面为:一只单引号+空格+or+空格+1+等于号+一只单引号。正常情况下,用户输入账号和密码会填入其中,到表中查询。在密码中输入:' or 1='
2024-04-16 20:39:03
167
原创 一文彻底弄懂Java字符串拼接(比如sql拼接)
首先我们要知道,Java里的字符串只能是双引号括起来(单引号是字符),如果在双引号里面使用变量(这里的变量指的是所有类型的变量,不只是String类型变量):第一步:用单引号括起来;第二步:在单引号里面加上一对双引号;第三步:在上一步的双引号里面加上两个加号;第四步:在两个加号里面写入变量。在做项目的要用到sql的语句的时候,我们常常不知道怎么拼接sql语句,查询语句还好,尤其是“更新语句”,比如insert,update。
2024-04-15 16:29:44
854
原创 Java Scanner类的坑
在控制台上输入数据时,如果是上一行输入int型,使用sc.nextInt(),而下一行是String类型,使用sc.nextLine()时,会有一个坑,这时候sc.nextLine()会传入“换行字符串”,所以要在二者之间加上sc.nextLine()。但是如果前面是String str=sc.nextLine(),后面是Integer i=sc.nextInt(),则不需要在之间加上sc.nextLine()。
2024-04-15 11:22:42
145
1
Springboot+Mybatis-plus+Vue+Element-ui学生选课管理系统,前后端以及数据库全部
2025-03-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人