- 博客(37)
- 收藏
- 关注
原创 Node.js 路由与中间件
路由是指根据客户端的请求路径和请求方法,将请求分配给对应的处理函数的机制。简单来说,就是"当用户访问某个 URL 时,服务器应该执行什么操作"。中间件是在请求到达路由处理函数之前执行的函数,可用于处理请求、修改响应、实现功能复用(如日志记录、身份验证等)。// 处理逻辑next();// 调用 next() 进入下一个中间件或路由});req:请求对象res:响应对象next:函数,调用后将控制权交给下一个中间件1。
2025-08-02 22:12:40
493
原创 node.js中的path模块
在 Node.js 中,path 模块提供了处理和操作文件路径的功能,其中 path.join 和 path.resolve 是两个常用的方法。它们在处理路径时有不同的行为和用途:1.:按照传入的路径片段顺序进行拼接,使用系统特定的路径分隔符连接各个片段。示例代码:2.:从当前工作目录开始解析路径,遇到会向上一级目录回溯,遇到则表示当前目录,会被忽略。示例代码:返回路径类型:返回的是一个相对路径或者根据传入片段组合而成的路径字符串,它不会将路径解析为绝对路径,除非传入的路径片段本身就是绝对路径。
2025-07-24 21:40:13
460
原创 Async/Await
await 表达式通过暂停执行使返回 promise 的函数表现得像同步函数一样,直到返回的 promise 被兑现或拒绝。返回的 promise 的解决值会被当作该 await 表达式的返回值,它的作用是暂停异步函数的执行,等待右侧的 Promise 完成后,再恢复执行并返回 Promise 的结果。这是一个要实现省市县下拉框的案例,我们先默认选取第一个值作为渲染,这样写出来就构成了下方的在回调函数中嵌套回调函数,一直嵌套下去就形成了回调函数地狱,造成异常无法获取,耦合性严重,牵一发动全身的问题。
2025-07-23 22:12:25
353
原创 图书管理案例
编辑图书:点击 “编辑” 按钮弹出模态框,获取当前图书的数据并回显到表单中,用户修改信息后点击 “修改” 按钮,使用 axios 发送 PUT 请求更新数据,成功后刷新图书列表。新增图书:点击 “添加” 按钮弹出模态框,用户输入图书信息后点击 “保存” 按钮,收集表单数据并使用 axios 发送 POST 请求将数据保存到服务器,最后刷新图书列表。删除图书:使用事件委托为删除按钮绑定点击事件,获取图书的 id,使用 axios 发送 DELETE 请求删除图书,成功后刷新图书列表。
2025-07-22 21:41:52
273
原创 原型与原型链
当访问一个对象的属性或方法时,如果该对象自身没有这个属性或方法,JavaScript会自动到它的原型对象中查找;如果原型对象也没有,就会继续到原型对象的原型中查找,这样一层一层向上查找的链路就构成了原型链,直到查找到。
2025-07-21 22:10:15
403
原创 图片放大镜案例
该案例实现了一个“图片放大镜”功能:鼠标悬停在小图上时,会显示一个跟随鼠标的灰色选区框,同时右侧显示选区对应的放大区域;鼠标离开时,选区框和放大区域自动隐藏。当鼠标进入小图或放大区域时,显示选区框和放大区域;当鼠标在小图上移动时,计算鼠标相对于小图的坐标,控制选区框在小图内移动。
2025-07-19 20:01:27
402
原创 学生信息管理案例
首先需要创建页面的基础结构,包括表单(用于输入学生信息)和表格(用于展示学生信息)。表单提交是核心交互之一,需要实现"收集输入数据→验证数据→存储数据"的流程。存储所有学生对象,每个对象包含学生的详细信息(学号、姓名、年龄等)。上绑定点击事件,判断点击目标是否为"删除"链接,然后通过。验证通过后,需将数据存入数组,并动态生成表格行展示。实现(因删除按钮是动态生成的,静态绑定事件会失效)。标签)触发事件后,父元素可捕获并处理,避免重复绑定。函数,遍历数组,为每个学生对象生成表格行()上,动态生成的子元素(
2025-07-17 21:25:22
448
原创 轮播图案例
后置自增的 “延迟生效” 特性在赋值语句中产生的,导致之后的更换轮播图的过程并没有使用更行后的count值。在我使用count这个记录轮播图次序的数后缀自增后,此时轮播图切换效果失效,通过控制台打印count值发现count值没有改变,一直是初始化后的0。在轮播图的前一页后一页点击后的效果,都是将结构中的属性值改变,代码逻辑相同,写成一个函数提高复用率。这样,每次鼠标离开时,都会先清除上一次的计时器,再创建新的,确保始终只有一个计时器在运行,避免堆积。,使得了多个计时器叠加出现,造成了轮播图的快速切换。
2025-07-15 21:24:20
500
原创 对象的使用
在完成这个案例时,我有一错误就是在获取用户输入之后便强制转为Boolean类型,然而这种做法是错误的,用户输入之后返回的是字符串类型,转换后的结果只能为true,只会进入第一个分支,因此这里通过字符串的严格比较来判断用户的输入是否为true,即。随机颜色案例会根据用户输入进入分支条件生成不同的颜色表示,一种是16进制表示方法,一种是rgb表示方法。
2025-07-14 21:16:42
253
原创 CSS悬停闪现与a标签嵌套的问题
在布局百度页面的过程中,遇到了两个比较大的问题(悬停闪现问题和a标签不能嵌套显示的问题),故这里做一些整理,方便回顾。
2025-06-08 15:35:24
965
原创 css中的各种居中方法
在网页布局中,元素的居中对齐是最常见也最重要的布局需求之一。本文将介绍CSS中各种盒子居中对齐的技巧,包括水平居中、垂直居中以及水平垂直同时居中的多种实现方法。
2025-05-25 18:34:15
866
原创 CSS 浮动与定位以及定位中z-index的堆叠问题
在显示布局页面中,常常使用相对和绝对定位,在嵌套过程中也常常是父盒子为相对定位,子盒子绝对定位即子绝父相。与下面这一属性设置的等同都实现了向上移动自身高度的一半 */网页设置中要先设置网页的版心,这里实现一个固定定位跟随版心,以及一个绝对定位居中。/* 绝对定位的盒子不能通过margin: 0 auto 实现居中 */中有效,无法超越父级上下文与其他上下文的比较结果。/* 固定的盒子先走 浏览器界面的一半 *//* 之后走版心的盒子的一半 */子元素的z-index只在。/*版心的盒子居中*/
2025-05-17 23:07:48
1085
原创 CSS 盒子模型与元素定位
特性标准模型 (content-box)怪异模型 (border-box)width定义范围仅内容区域内容+padding+border实际内容宽度width值新增元素是否影响布局是否默认值所有现代浏览器传统IE浏览器* {这样我们的盒子会始终统一按照这样的模式来布局,不必设置内边距和边框之后再手动减少盒子宽度.
2025-05-11 14:49:21
725
1
原创 使用c,c++模拟栈和队列的实现
栈(stack)是一种遵循先入后出逻辑的线性数据结构。我们可以将栈类比为桌面上的一摞盘子,如果想取出底部的盘子,则需要先将上面的盘子依次移走,就就先进后出,后进先出。堆叠元素的顶部称为“栈顶”,底部称为“栈底”。将把元素添加到栈顶的操作叫作“入栈”,删除栈顶元素的操作叫作“出栈”。栈的常用操作如下:push() 元素入栈(添加至栈顶)pop() 栈顶元素出栈peek() 访问栈顶元素以下图片取自hello算法。
2025-05-05 18:52:09
396
原创 HTML基础语法
<dt>名词1</dt> <dd>名词1解释1</dd> <dd>名词1解释2</dd> <li>列表项1</li> <li>列表项2</li> <li>列表项3</li> <li>列表项1</li> <li>列表项2</li> <li>列表项3</li>
2025-05-03 16:01:42
1062
原创 4月27日算法题
2. 本题开始思考的时候,很疑惑这个数组怎样划分有序区间进行二分,就想的是从mid和mid+1的关系来划分左右区间,nums[mid+1]如果更大往右边找,相当于短视一点就认为在右边满足了有一边是大的,当然题中有 nums[-1] = nums[n] = -∞ 这一点,因为如果数组是有序的,那么边界就是满足条件的。输入:nums = [1,5,9,1,5,9], indexDiff = 2, valueDiff = 3。= nums[i + 1]输入:nums = [1,2,1,3,5,6,4]
2025-04-27 22:57:03
936
原创 前缀和的一些应用和变式
前缀和(Prefix Sum)是一种重要的预处理技术,它通过预先计算并存储数组的累计和,使得我们可以在O(1)时间内快速求出数组任意区间的和。这种技术在处理大量区间求和查询时特别高效。
2025-04-27 19:27:51
359
原创 4月26日算法题
你可以选择任意一棵树开始采摘,你必须从 每棵 树(包括开始采摘的树)上 恰好摘一个水果。给你一个整数数组 fruits ,返回你可以收集的水果的 最大 数目。一旦你走到某棵树前,但水果不符合篮子的水果类型,那么就必须停止采摘。如果从第一棵树开始采摘,则只能采摘 [1,2] 这两棵树。输入:fruits = [1,2,3,2,2]解释:可以采摘 [2,3,2,2] 这四棵树。输入:fruits = [0,1,2,2]解释:可以采摘 [1,2,2] 这三棵树。输入:fruits = [1,2,1]
2025-04-26 20:47:25
820
原创 4月25日算法题
例如, [0,1,2,4,4,4,5,6,6,7] 在下标 5 处经旋转后可能变为 [4,5,6,6,7,0,1,2,4,4]。解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。输入:nums = [2,5,6,0,0,1,2], target = 0。输入:nums = [2,5,6,0,0,1,2], target = 3。输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]
2025-04-25 17:38:49
953
原创 4月24日算法题
在实现合成新的链表时,将l1,l2某个作为主链需要特判,这里直接用虚拟头节点,重新合成新的链表,不易出错,在最后注意将链表再反转回来。1.本题让计算两数相加,不过每个数位是让链表存储的,我们就会遇到这种情况,就是数相加数位需要对齐然而链表长度我们是不知道的,如果再遍历就有些繁杂了,这里就用让链表反转的方式,直接实现数位对齐。,这样结果就是找到分割后的两条链表头节点,但是其中前一个头节点其实还是整个链表,就这样递归下去不会结束了,因为没有实现分割,递归的终止条件不会达到(当然最开始的链表长度需要大于1)。
2025-04-24 21:34:30
839
原创 4.23日算法题
1.本题让我们重排链表,本题的这种排序方式就是让链表一分为二,再将后面的链表到这插入到第一部分的链表中。3.要注意的是在分割的过程要正确的置空,第一部分分割后要把尾节点的next指针设为空,避免单向链表成环。2.思路就是我们先分割链表,在反转链表后,将翻转后的链表与第一部分链表交叉合并。生成的输入满足:链表表示一个不含前导零的数字,除了数字 0 本身。输入: head = [1,2,3,4,5]输入: head = [1,2,3,4]输出: [1,5,2,4,3]输出:[1,9,9,8]
2025-04-23 22:59:50
928
原创 4.21日算法题
3.对于本题,我们要从后向前找,找到那个转折点,就是前一个元素小于后一元素时,这个前一个元素下标就要被保留起来,之后再从这个元素之后的部分开始找,我们原本是从后面找过来的,所以这部分后面的元素是按递减顺序排列的,然后再从尾部开始找到第一个大于原来那个元素的一个元素,交换这两两个元素,之后再将前一个元素的之后部分排好序。1.这是一个二分查找类的题目,题目中的数组是经过相应旋转的,这个旋转的意思是将原本有序的按升序排列的数组,将它的尾部元素插入到他的前面去,旋转n次就是依次将后面的元素放到前面n次。
2025-04-21 21:47:18
310
原创 4.20日算法题
4.while循环设置链表分成几部分,然后将情况特判,分为 k == 1 ,len <= k ,和len > k 三种情况,注意每次将各部分尾节点置空。3.遍历完链表获得链表长度,通过给定的k,知道len / k 知道各部分应该从哪开始分割。1.本题是将链表分成k各部分,然后将它们放进一个结点指针类型的数组中。2.我们先设置一个相应的数组,此数组就存储链表各部分的头节点。
2025-04-20 22:51:36
376
原创 c和c++的动态分配内存
在完成链表题目过程中,遇到了new关键字来为相应的链表节点分配内存,之后使用delete关键字释放内存,这一点感觉与c语言中的malloc,free十分地相似,然后查找了相关的资料,整理了一下。
2025-04-20 19:47:09
978
原创 【无标题】
2.每完成一次的一周的赋值,上下左右都会边界缩小。通过相应函数设定,注意链表下标从0开始。3.通过i的临时变量,避免多次操作边界。设置一个虚拟头节点,便于处理头节点。1.定义好上下左右的边界。
2025-04-19 15:39:47
282
原创 【无标题】
快慢指针(Slow-Fast Pointer)是解决链表问题的核心技巧之一,其本质是通过。:找到两个链表的相交节点。:判断链表是否为回文结构。:将单链表所有节点反转。:判断链表是否有环。:找到环的入口节点。
2025-04-13 18:45:40
884
原创 P2550 [AHOI2001] 彩票摇奖 洛谷
tong[i]++;//每行有几个相同的号码。//特等奖 ······int dj[7] = { 0 };C语言小白,仅供参考。
2024-10-22 15:53:00
446
1
原创 P5728 【深基5.例5】旗鼓相当的对手 洛谷
/从第一个开始遍历,以此类推。#include<math.h>//abs函数取绝对值 头文件是这个。int yi = 0;//英语 便于之后比较。int yu = 0;int sh = 0;初学C语言,仅供参考。
2024-10-22 15:48:29
213
原创 P1047 [NOIP2005 普及组] 校门外的树 c语言代码
j <= v[i];j++){使用标记法 范围内的标记为1。c语言初学者,仅供参考。
2024-10-22 15:40:50
369
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人