- 博客(80)
- 收藏
- 关注
原创 会话控制——Cookie、Session、Token
Cookie 是按照域名划分保存的,浏览器向服务器发送请求时,会自动将当前域名下可用的 Cookie 设置在请求头中,然后传递给服务器.Cookie 也可以理解成为一个 HTTP 的请求头。JWT 跨域认证解决方案,可用于基于 token 的身份验证,JWT 使 token 的生成与校验更规范.概念:在会话控制中,Cookie 是一种用于在客户端和服务器之间传递信息的机制,主要用于跟踪用户状态。Session 是一种在服务器端存储用户状态的机制,用于跟踪用户在网站上的活动。,客户端只保存一个唯一。
2025-01-08 13:37:41
1129
原创 nodeJS——Mongoose基础操作
在 MongoDB 的查询投影中,有这样一个规则:不能同时混合使用 1 和 0 作为值(除了 _id 字段),即要么全部使用 1 来包含字段,要么全部使用 0 来排除字段,只有 _id 字段可以例外处理。MongoDB 支持对各种类型的数据进行排序,但为了确保最佳性能,尤其是当处理大量数据时,应该尽量对数值和日期类型进行排序,并且为经常用于排序的字段创建索引。作为参数,该对象的键是你要排序的字段名,值为 1 标识升序(从小到大),值为-1 表示降序(从大到小),可以在。)等,可以简化应用程序的开发过程。
2024-12-17 18:54:02
825
原创 Node.js——文件上传
地址:https://www.npmjs.com/package/formidable,参考里面。保存到网站根目录,一般都是。在文件上传中,可以打印。
2024-11-07 21:38:00
422
原创 防盗链与路由模块化
在Express中实现防盗链的一种常见方法是通过检查HTTP请求头中的Referer字段,Referer字段记录了请求来源的域名,可以用来判断请求是否来自允许的来源。
2024-10-08 18:30:03
283
原创 express框架(二)
中间件(Middleware)本质是一个回调函数,中间件函数可以像路由回调一样访问请求对象(request),响应对象(response)。
2024-09-11 21:33:16
722
1
原创 Node.js模块化
将一个复杂的程序文件依据一定规则(规范)拆分成多个文件的过程称之为模块化。其中拆分的每一个文件就是模块,模块的内部数据是私有的,不过模块可以暴露内部数据以便其他模块使用。.js.json。
2024-08-04 14:33:45
1005
原创 HTTP模块(二)
不仅可以接收字符串作为参数,发送文本数据给客户端,还能够接收 Buffer 对象来发送二进制数据,如图片、音频或视频文件等,需要注意的是使用 Buffer 时,确保你的内容类型(Content-Type)设置与实际数据类型相匹配,以便浏览器或客户端能够正确处理。这是由于响应报文均返回html所导致。会发现css样式和js点击功能失效。当结构为资源都在响应文件夹下时。
2024-07-24 20:18:12
762
1
原创 HTTP模块(一)
本小节主要讲解HTTP服务如何创建服务,查看HTTP请求&响应报文,还有注意事项说明,另外讲解本地环境&Node环境&浏览器之间的链路图示,如何提取HTTP报文字符串,及报错信息查询。
2024-07-07 19:49:44
1133
原创 HTTP协议
在Node.js中,HTTP(Hypertext Transfer Protocol)协议被广泛应用来构建web服务器和实现客户端与服务器之间的通信。
2024-06-26 19:10:11
735
原创 fs模块(二)
readFile函数是模块提供的一个用于异步读取文件内容的函数,这个函数可以指定一个文件路径和回调函数,当文件读取完成时,回调函数会被调用,并且文件内容作为第一个参数传递给回调函数。fs.readFile(path[, options], callback)如果这个不存在,则会报错同步除了异步的函数外,Node.js还提供了一个同步版本的函数。会阻塞当前线程直到文件读取完成,然后返回内容。使用同步版本时,不需要提供回调函数,而是直接返回文件内容或抛出错误。注意事项使用时,如果文件很大,推荐使用流
2024-06-24 17:52:07
1285
原创 fs模块(一)
在编程中,[, options] 这种语法通常用来表示函数或方法的参数是可选的。这种语法在多种编程语言的文档中常见,特别是在描述函数签名时。方括号 [] 内的参数意味着这个参数不是调用函数时必须提供的,它有一个默认值或者在函数内部被忽略,如果调用者没有显式地提供它。data[, options] 这种写法时,data 是必需参数。
2024-06-16 19:45:21
1003
原创 Buffer
在Node.js中,Buffer是一个非常重要的内置全局对象,Node.js是基于Chrome V8引擎构建的,V8引擎本身不支持处理二进制数据,因此Node.js引入Buffer来弥补这一不足,Buffer中文译为【缓冲区】,是一个类似于Array的。allocUnsafe创建的Buffer可能包含旧的内存数据,内存空间其实是可以复用的,所以allocUnsafe的执行速度更快。,用于表示固定长度的字节序列,换句话讲,Buffer就是一段固定长度的内存空间,用于处理。
2024-06-12 19:45:00
407
原创 Python进阶:函数
定义一个greet函数,接受一个必传参数name,两个可选参数greeting, punctuation'):"""打招呼"""
2024-05-06 20:30:00
585
原创 Python基础(二)-分支与循环
if语句用于根据条件控制代码需要执行的逻辑。在这个示例中,首先检查age是否大于或等于18,如果是,则输出 “成年人”。如果不是,则继续检查age是否在13至17岁之间,如果是,则输出 “青少年”。如果上述两个条件都不满足,则执行else子句,输出 “儿童”。注意:每个条件后面都需要跟一个冒号,并且在条件为真的情况下执行的代码需要适当的缩进(通常是4个空格或者1个制表符)。此外,Python中用于判断条件的表达式可以是任意能够计算出布尔值(True或者False)的表达式。
2024-04-07 22:29:20
626
原创 NPM常用命令详解
此命令用于在当前目录下创建一个新的package.json文件,它是项目的配置文件,包含项目的基本信息如名称、版本、作者、描述、入口文件、依赖项等。NPM(Node Package Manager)是JavaScript编程环境Node.js中的一个核心工具,用于管理和共享Node.js包(模块)。查看指定模块的详细信息,包括其版本、许可证、作者、GitHub链接以及package.json的内容等。更新指定的模块至最新兼容版本,或者不指定模块名时更新所有已安装的模块。在新版本的npm中,推荐使用。
2024-04-06 20:47:53
407
原创 Python基础
Python中“8195MB”因为值与整数或者浮点数的类型不兼容,所以无法直接转为整数或者浮点数。元组可以理解为只读的数组,它在创建时确定元素个数和元素的值,一旦创建就不能被修改。获取字典中的值,如果存在,则返回对应的值,如果不存在该键,则会抛出。获取字典中的值,但提供了额外的功能:如果键不存在字典中,它将返回。在 Python 中,数组被称之为列表,用于存储多个连续的值。字典是一个键值对(key-value pair)的集合,通过键。在python中,只有兼容的数据类型才能进行计算,比如。
2024-04-06 20:34:18
1082
原创 单片机简介(一)
一旦51单片机的程序存储器(Flash ROM或EPROM)中烧录了程序,除非使用外部的编程器或者通过特定的ISP(In-System Programming,系统内编程)接口,否则无法在单片机运行期间修改其存储的程序代码。宏晶公司推出的增强型 51 单片机 STC89Cxx/STC90Cxx等系列,是对传统8051单片机架构进行了大幅度的增强和改进,除了内部资源及功能大大增强外,还有一个非常重要的是它支持 ISP(在系统可编程)/IAP(在应用可编程),无需拆卸芯片或者使用专用的编程器。
2024-04-01 21:24:12
1566
原创 51单片机入门:认识开发板
指的是这些四位一体数码管的工作方式,具体来说,每一个四位一体数码管内部的所有LED的阴极(负极)是相互连接在一起的,并作为公共端(COM端),这个公共端通常接地(GND)。如果存在这种型号,那么它同样应该具备显示数字和字符的能力,尽管具体的行数和列数没有像1602那样明确指出,但鉴于二者可以互换使用,也可能具有类似的显示能力。:两个独立的四位数码管,每个四位数码管都是“一体”的设计,也就是说,每个数码管内部集成了四个独立的七段LED(或八段LED,包含小数点),它们共同构成了一个完整的四位数字显示单元。
2024-04-01 12:43:26
4369
原创 C语言基础:数据类型
C 语言的每一种数据,都是有类型(type)的,编译器必须知道数据的类型,才能操作数据。一旦知道某个值的数据类型,就能知道该值的特征和操作方式。基本数据类型有三种:字符(char)、整数(int)和浮点数(float)。复杂的类型都是基于它们构建。
2024-03-28 20:11:16
1376
原创 C语言基础:流程控制
C 语言的程序是顺序执行,即先执行前面的语句,再执行后面的语句。开发者如果想要控制程序执行的流程,就必须使用流程控制的语法结构,主要是条件执行和循环执行。
2024-03-25 21:57:29
837
原创 C语言基础:变量
变量(variable)可以理解成一块内存区域的名字。通过变量名,可以引用这块内存区域,获取里面存储的值。由于值可能发生变化,所以称为变量,否则就是常量了。
2024-03-24 16:21:55
689
原创 C语言基础:printf()
这里%5d中的5,指的就是占位符的最小宽度,表示输出的整数值至少会占用5个字符的位置,由于value是123,所以在输出时会在123的左边填充足够的空格,使其总共有5个字符宽。就是占位符,表示这个位置的值,要用其他值来替换。占位符的第一个字符一律用%,也就是百分号,第二个字符表示占位符的类型,i可以理解成。因为它们是写入标准的,到底包括哪些功能,应该怎么使用的,都是规定好的,这样才能保证代码的规范和可移植。,比如printf(),scanf()的头文件就是系统自带的stdio.h。头文件的后缀通常是.h。
2024-03-22 21:28:32
635
原创 C语言基础:scanf
是C语言中的一个输入函数,全称为“格式化扫描输入”(Formatted Scan Input),用于从标准输入设备(通常是键盘)读取用户输入的数据,并将数据按照指定的格式存入到程序变量中。Q:“\n的作用是什么?A:\n 是一个转义序列,作用是在输出时插入一个换行符。输出结果如下Q:“scanf(”%d", &number)中的%d作用是什么?A:在 scanf 函数中,%d 是一个格式说明符,它告诉 scanf 函数应该期待从输入流读取一个整数值,并将其存储到紧跟其后的变量地址指向的内存位置。
2024-03-21 18:45:00
609
原创 babel转换ES6为ES5
准备几个js文件。// test1export default { hobbit: function () { console.log('唱歌') }}// test2const age = 18;function talk() { console.log('今年18')}export { age, talk}// test3export const name = '张三';export function speck() {
2022-01-13 20:22:42
2020
原创 single-spa源码分析之按需加载
源码相关与 activeWhen 相关activeWhen API 可以控制页面是否需要加载以下片段是源码及注释// \single-spa-source-code\src\applications :447/** * 得到一个函数,函数负责判断浏览器当前地址是否和用户给定的baseURL相匹配,匹配返回true,否则返回false */function sanitizeActiveWhen(activeWhen) { // activeWhen 接收一个函数(箭头函数),将locati
2022-01-08 18:13:29
717
原创 ES6-解构赋值
ES6 允许按照一定模式从数组和对象提取值,对变量进行赋值数组的解构赋值const list = ["张三", "李四", "王五"];const [a, b, c] = list;console.log(a); // 张三console.log(b); // 李四console.log(c); // 王五对象的解构赋值const obj = { name: "张三", age: 18, speck: function () { console.log("今年1
2021-12-02 19:47:45
582
原创 ES6-let、const变量声明及声明特性
var//声明变量let a;// orlet b, c, d;// orlet e = [];声明变量的特性变量不能重复声明<script>let name = "张三"; let name = "李四";</script>Uncaught SyntaxError: Identifier 'name' has already been declared未捕获的语法错误:已声明标识符“name”块级作用域在 es5 中有三种作用域,分别是全局,
2021-12-02 19:47:27
719
原创 react 函数式组件中使用props
我们之前学习的一直是组件实例上的props,是可以通过this访问组件实例的,比如props,可以通过this.props访问,但是在函数式组件中,不存在组件实例。function Person() { return ( <ul> <li>姓名:{name}</li> <li>性别:{sex}</li> <li>年龄:{age + 1}</li> </ul>
2021-11-10 19:58:38
5508
原创 React 类式组件中的构造器与Props
类式组件中构造器与props。<script type="text/babel"> class Person extends React.Component { static propTypes = { name: PropTypes.string.isRequired, sex: PropTypes.string, age: PropTypes.number, }; // 设置默认属性 static defaultPro
2021-11-05 21:00:00
377
原创 react props的简写
<script type="text/babel"> class Person extends React.Component { render() { const { name, sex, age } = this.props; return ( <ul> <li>姓名:{name}</li> <li>性别:{sex}</li>
2021-11-05 19:00:00
302
原创 react 对props进行类型限制
承接上文 <body> <div id="test1"></div> <div id="test2"></div> <div id="test3"></div> <!-- 引入核心库 --> <script src="../js/react.development.js"></script> <!-- 扩展库 -->
2021-11-04 20:06:50
1905
原创 uniapp使用echart-for-weixin-miniprogram,formatter失效问题
作者在初始版本中,对ecomfe/echarts-for-weixin做了少量改动来兼容uni-app 需要通过uni-app编译后使用。https://ext.dcloud.net.cn/plugin?id=3464#detail使用过程中发现无法获取到formatter,比较简单的办法就是手动添加,也就是在setOption之前先加上formatter方法。找到uni-ec-canvas文件夹下uni-ec-canvas.vue,在this.$curChart.setOption(this.ec.
2021-10-27 19:42:55
824
4
原创 React 批量传递props
承接上文 <script type="text/babel"> class Person extends React.Component { render() { console.log("this", this); const { name, sex, age } = this.props; return ( <ul> <li&g
2021-10-26 19:45:00
719
2
原创 React props的基础使用
props 的基本使用每个组件对象都有 props[properties 的简写]属性组件标签的所有属性都保存在 props 中
2021-10-21 10:59:20
96
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人