自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 vue3中什么情况下赋值会失去响应性及如何处理并给出正确的处理示例

综上所述,在 Vue 3 中,为了避免赋值操作导致的响应性丢失,应该谨慎处理响应式对象的赋值和解构操作,并优先使用 Vue 提供的响应式方法和 API。解构响应式对象时,如果直接解构赋值到新的变量中,会丢失响应性。这是因为解构相当于复制了值,跳过了 Proxy 的代理。创建的响应式对象赋值为一个新的对象时,会丢失响应性。这是因为新的对象没有经过 Vue 的响应式处理。对于数组,直接替换整个数组会丢失响应性。同样,使用非响应式方法(如。等)生成的新数组也不会被 Vue 追踪。

2024-12-05 14:41:26 732

原创 Vue3如何使用Pinia详细介绍、pinia持久化存储、模块化?

Vue3如何使用Pinia详细介绍、pinia持久化存储(pinia-plugin-persistedstate详细配置)-CSDN博客pinia如何进行模块化?-CSDN博客状态管理 Pinia | uni-app官网 (dcloud.net.cn)

2024-12-05 13:30:04 386

原创 pinia如何进行模块化?

Pinia 是一个用于 Vue.js 的状态管理库,它允许你以模块化的方式组织和管理应用的状态。

2024-12-05 13:28:41 749

原创 vue3的hooks及pinia命名时,为什么推荐前面加use?

明确标识:以“use”开头的命名方式可以清晰地表明这是一个自定义hook,从而与其他普通的JavaScript函数或Vue组件区分开来。这种命名约定有助于开发者在阅读代码时快速识别出哪些函数是可以被多个组件共享的逻辑封装。遵循惯例:Vue3的Composition API鼓励开发者将组件逻辑封装成可复用的函数,即自定义hooks。而“use”开头的命名方式已经成为了Vue和React等前端框架中自定义hooks的通用命名惯例,有助于保持代码的一致性和可读性。提高可重用性。

2024-12-04 08:23:21 387

原创 uniapp中报错:If this is a native custom element, make sure to exclude it from component

uniapp中自定义组件,报错:If this is a native custom element, make sure to exclude it from component.经检查没有符合easycom的规则,即。easycom是自动开启的,不需要手动开启,有需求时可以在 pages.json 的 easycom 节点进行个性化设置,详见。不管components目录下安装了多少组件,easycom打包后会自动剔除没有使用的组件,对组件库的使用尤为友好。就可以不用引用、注册,直接在页面中使用。

2024-12-03 22:08:42 1986

原创 生成随机字符串的三种方式:uuid、nanoid、时间戳+随机数

这种方法结合了当前的时间戳和一个随机数来生成一个相对唯一的字符串。虽然它的唯一性不如UUID和NanoID,但在某些场景下可能足够使用。uniapp示例代码// 生成基于时间戳和随机数的唯一字符串// 获取当前时间戳// 生成一个随机数,并将其转换为32进制字符串// 从随机数字符串中提取一部分,与时间戳组合// 返回最终的唯一字符串return `${// 生成基于时间戳和随机数的唯一字符串 function generateRandomString() {

2024-12-03 21:38:49 1123

原创 在 JavaScript 中,返回对象时加上小括号的相关介绍

在 JavaScript 中,返回对象时加上小括号通常是为了避免语法歧义,特别是在使用箭头函数时。关键字后面直接跟着对象字面量,并且没有其他代码干扰,所以小括号是多余的,并且通常会被省略以保持代码的简洁性。被解释为函数体的一个标签语句(虽然这种用法是不合法的),而不是一个对象字面量。同样地,如果你在一个普通的函数中返回对象,并且你的对象字面量直接跟在。通常被解释为函数体的开始和结束,而不是对象的字面量表示。上面的代码实际上会抛出一个语法错误,因为。然而,请注意,在这个特定的例子中,由于。

2024-11-28 18:47:42 277

原创 CSRF跨站请求伪造 解释、示例及对策

攻击者通过一些技术手段欺骗用户的浏览器去访问一个用户以前认证过的站点,并运行一些操作(如发邮件、发消息,甚至财产操作如转账和购买商品)。尽管CSRF听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装成受信任用户请求受信任的网站。当用户浏览包含该恶意图像的网页时,浏览器会自动发送GET请求,执行资金转账操作,将1000单位货币转账到攻击者的账户。综上所述,CSRF跨站请求伪造是一种严重的安全威胁,但通过采取上述防御措施,可以有效地降低被攻击的风险。

2024-11-03 14:59:43 646

原创 npm中md5包的介绍及示例

npm中的md5包是一个用于生成MD5哈希值的Node.js模块。MD5(Message-Digest Algorithm 5)是一种广泛使用的密码散列函数,可以产生一个128位(16字节)的散列值(通常用32位的十六进制字符串表示)。这个散列值通常用于确保信息传输完整一致。以下是关于npm中md5。

2024-11-03 11:07:45 646

原创 npm系列:md5 ---- 一个用于生成MD5哈希值的Node.js模块

在2.0.0版本之前,npm上有两个名为md5的包,一个为小写,一个大写(您正在查看的这个)。从2.0.0版本开始,此模块的所有新版本都将在npm上以小写md5的形式发布。要使用正确版本,此模块的用户如果希望使用>=2.0.0的版本,则需要将代码从。此包基于Jeff Mott的工作,他实现了一个纯JS的MD5算法,该算法由Ronald L. Rivest于1991年发布。我需要一个npm包来实现这个算法,所以我使用了Jeff的实现来创建这个包。您可以在服务器端和客户端都使用这个包。

2024-11-03 11:05:41 672

原创 使用 express-session 和 connect-mongo 将会话数据存储在 MongoDB示例及实现用户登录会话示例

是 Express 框架的一个中间件,用于处理会话数据。而是一个将的会话数据存储在 MongoDB 中的第三方库。通过,你可以轻松地将用户会话持久化到 MongoDB 数据库中,这对于需要跨多个请求或服务器实例保持用户状态的应用非常有用。

2024-11-03 10:57:04 665

原创 npm系列:express-session ---- 它允许开发者在服务器端存储用户会话信息,并通过cookie在客户端和服务器端之间传递会话标识符(sessionId)

如果提供了秘密数组,则只有第一个元素将用于签署会话ID cookie,而在验证请求中的签名时,将考虑所有元素。根据您的存储,这可能是必要的,但它也可能创建竞态条件,其中一个客户端向您的服务器发出两个并行请求,并且一个请求中对会话所做的更改可能会在另一个请求结束时被覆盖,即使它没有进行任何更改(此行为还取决于您使用的存储)。为了在不使现有会话失效的情况下轮换秘密,请提供一个秘密数组,将新秘密作为数组的第一个元素,并将以前的秘密作为后续元素包含在内。当为true时,设置HttpOnly属性,否则不设置。

2024-11-03 10:43:15 775

原创 在express中,res.json()之后还用写return才能中止后续操作吗

语句不是必需的,但它清楚地表明了在条件满足时,函数的执行将在这里结束。这可以帮助其他开发者(或未来的你)更容易地理解代码的意图。因此,在大多数情况下,你不需要显式地添加。被调用时,HTTP 响应被发送回客户端,并且该请求的处理函数(即回调函数)会自动结束。这主要是一个编码风格和可读性的问题,而不是一个功能上的要求。然而,如果你在处理函数中有多个分支,并且想要在某些条件下提前结束响应,你可以使用。或其他响应方法后,你通常不需要显式地使用。总之,在 Express.js 中,调用。来中止后续操作,但使用。

2024-11-01 19:11:41 328

原创 Moment.js ---- 一个流行的轻量级JavaScript日期和时间处理库

Moment.js 是一个流行的轻量级JavaScript日期和时间处理库,它提供了丰富的API,使得开发者能够轻松地进行日期和时间的格式化、解析、计算以及比较等操作。Moment.js支持在浏览器和NodeJS两种环境中运行,并且内置了多种语言支持,使得开发者可以根据需要切换语言。Moment.js是一个功能强大的JavaScript日期和时间处理库,它提供了丰富的API和多种语言支持,使得开发者能够轻松地进行日期和时间的格式化、解析、计算以及比较等操作。

2024-11-01 10:13:32 989

原创 mongoose代码模块化

【代码】mongoose代码模块化。

2024-11-01 09:39:56 280

原创 连接池的概念及工作原理、配置等

连接池是预先创建并维护一定数量的数据库连接,以供应用程序在需要时快速获取和释放。这些连接在池中保持活动状态,以便在多个数据库操作之间复用。

2024-10-31 09:30:29 425

原创 npm系列:lowdb@1.0.0 ---- 适用于Node、Electron和浏览器的轻量级JSON数据库。由Lodash驱动。

为了在低数据库(lowdb)中添加基于ID的资源支持,您有两个选项。它的速度足够快,而且安全性也足够高,可以用作嵌入式数据库。然而,如果您追求的是高性能和可扩展性,而非简单性,那么您可能应该坚持使用像MongoDB这样的传统数据库。请注意,数据是通过引用返回的,这意味着对返回对象的修改可能会改变数据库。第三方适配器可能有不同的选项。更为简洁,并返回一个唯一的ID,您可以在创建资源时使用这个ID。选项读取源(根据适配器的不同,可能会返回一个promise)。此外,方法的执行是惰性的,即执行会被推迟到调用。

2024-10-30 12:11:13 732

原创 npm系列:formidable ---- formidable使用方法及使用Express框架和formidable模块处理文件上传的简单示例

formidable是一个开源的Node.js模块,由@felixge为Transloadit开发。它支持快速且流式的multipart解析,自动将文件上传写入磁盘,并提供丰富的插件API,允许自定义解析器和插件。formidable经过大量实际应用的考验,被认为是生产就绪的,并在多个生产环境中稳定运行多年。

2024-10-30 10:23:04 1571

原创 npm系列:formidable ---- 一个用于解析表单数据,特别是文件上传的Node.js模块

你可以像下面这样手动使用formidable,或者通过koa-better-body包来使用,后者在底层使用了formidable,并支持更多的功能和不同类型的请求体。这个性能测试是基于旧的代码库,因此已经相当陈旧了。有多种方法可以实现这一点,但Formidable只需要Node.js的请求流,所以像下面的示例一样,不需要任何第三方的Express.js中间件就可以正常工作。请注意,你应该传递ctx.req,这是Node.js的请求对象,而不是Koa的请求对象ctx.request——这两者是有区别的。

2024-10-30 09:47:29 1081

原创 npm系列:jsonwebtoken ---- 一个JSON Web Tokens(JSON 网络令牌)的实现

是一个字符串(utf-8 编码)、缓冲区或 KeyObject,包含 HMAC 算法的密钥,或者 RSA 和 ECDSA 的 PEM 编码公钥。如本评论中所述,有些库期望使用 base64 编码的密钥(使用 base64 编码的随机字节),如果这是您的情况,您可以通过 Buffer.from(secret, ‘base64’) 来传递密钥,这样密钥将使用 base64 进行解码,并且令牌验证将使用原始的随机字节。如果签名有效且可选的过期时间、受众或发行者都有效,则回调函数将被调用,并传入解码后的有效载荷。

2024-10-25 20:34:33 961

原创 npm系列:使用 morgan 和 rotating-file-stream 模块来记录每天的请求日志到单独的日志文件

该示例展示了一个基本的 Express 应用,该应用使用morgan和模块来记录每天的请求日志到单独的日志文件中。

2024-10-24 18:51:08 271

原创 npm系列:rotating-file-stream ---- 一个Node.js包,它允许你创建一个可写入文件的流,并且这个文件可以根据设定的条件(如大小或时间间隔)进行轮转

首先执行的是针对options.maxFiles的检查,如果删除了一些文件,则执行针对options.maxSize的检查,最后可能会删除其他文件。注意:如果使用了此选项,以下选项将无效:options.history、options.immutable、options.initialRotation、options.intervalBoundary、options.maxFiles、options.maxSize。如果不是这种情况,则会生成一个新的目标轮转文件名,并在继续之前执行相同的检查。

2024-10-24 13:38:05 1209

原创 npm系列:morgan ---- morgan`中间件记录HTTP请求和响应日志示例

定义了一个简单的GET路由,当访问根路径时返回。

2024-10-24 12:20:23 814

原创 npm系列:morgan ---- 用于Node.js的HTTP请求日志中间件

morgan - npm (npmjs.com)HTTP request logger middleware for node.js用于Node.js的HTTP请求日志中间件morgan(format, options)Create a new morgan logger middleware function using the given and . The argument may be a string of a predefined name (see below for the name

2024-10-24 11:50:47 1061

原创 npm系列:body-parser ----使用 body-parser 中间件的简单示例及使用 express.json() 和 express.urlencoded() 进行替代

这个修改后的版本与前面的示例在功能上完全相同,但使用了 Express 提供的内置中间件。是一个常用的中间件,用于解析进入 Express 应用的 HTTP 请求体。首先,确保你已经安装了 Node.js 和 npm(Node 包管理器)。你应该会在控制台中看到解析后的数据被打印出来,并且服务器会返回一个响应。现在不是最新的解决方案。对于新的 Express 应用,建议使用。所取代,但在很多旧的代码库中你仍然可能会看到它的使用。现在已经被认为是较旧的解决方案,并被。在 Node.js 中,

2024-10-24 08:18:08 351

原创 npm系列:body-parser ---- Node.js 的请求体解析中间件

注意:现在已经被认为是较旧的解决方案,并被express自带的中间件和所取代。

2024-10-24 07:56:59 1071

原创 npm系列:cookie-parser----在 Node.js 应用程序中使用 cookie-parser 的详细步骤和示例

是一个用于解析 HTTP 请求中的 Cookie 的中间件,通常与 Express.js 框架一起使用。以下是如何在 Node.js 应用程序中使用的详细步骤和示例。

2024-10-23 22:53:11 520

原创 npm系列:cookie-parser----一个用于解析 HTTP 请求中的 Cookie 的中间件,通常与 Express.js 框架一起使用

ParseCookiesecretreq.secret解析Cookie头,并使用以cookie名称作为键的对象填充req.cookies。可选地,您可以通过传递一个密钥字符串来启用签名cookie支持,这将分配req.secret,以便其他中间件可以使用它。

2024-10-23 22:47:47 666

原创 npm系列:http-errors----在Node.js的Express应用中,使用http-errors创建标准化的HTTP错误对象。

是一个非常有用的库,用于创建标准化的HTTP错误对象。这些错误对象可以与Express的错误处理中间件很好地集成,从而简化错误处理流程。在Express应用中设置一个全局的错误处理中间件,用于捕获并处理这些HTTP错误对象。这样,你就可以在Express应用中方便地使用。在Node.js的Express应用中,你可以使用npm或yarn来安装它。以下是如何在Express中使用。在你的Express应用中,导入。在你的路由或中间件中,使用。创建HTTP错误对象。来处理HTTP错误了。

2024-10-23 22:11:42 415

原创 npm系列:http-errors----轻松地为 Express、Koa、Connect 等创建 HTTP 错误。

轻松地为 Express、Koa、Connect 等创建 HTTP 错误。

2024-10-23 22:02:49 661

原创 npm系列:nodemon----常用命令

nodemon是一个方便的开发工具,它主要用于实时监听Node.js项目中文件的变化,并在检测到变化时自动重启web服务器,从而免去了手动重启服务器的繁琐步骤。

2024-10-23 18:50:40 406

原创 npm系列:nodemon----一个自动重启 Node.js 应用程序的工具

上面的 nodemon.json 文件可能是我的全局配置,这样我就可以为 Ruby 文件和处理文件提供支持,我可以运行 nodemon demo.pde,并且 nodemon 会自动知道如何运行脚本,即使它本身不支持处理脚本的运行。要使用 nodemon,只需在执行脚本时,将命令行中的 node 一词替换为 nodemon 即可。如果你希望在nodemon重启时收到类似growl的通知,或者在事件发生时触发某个动作,那么你可以引入nodemon,或者在nodemon.json文件中添加事件动作。

2024-10-23 16:53:49 1191

原创 HTTP 请求日志中间件:Morgan

你可以使用。

2024-10-22 22:55:38 665

原创 ejs中<%、<%=、<%-的作用

标签时,你可以将 JavaScript 表达式的值输出到最终的 HTML 中。标签时,你可以嵌入任意的 JavaScript 代码,但这些代码不会直接输出到最终的 HTML 中。的内容将直接输出到最终的 HTML 中,而不会进行 HTML 转义。标签内的代码用于控制是否显示欢迎信息或登录提示,但这些标签本身不会在最终的 HTML 中产生任何输出。:如果你需要输出未经转义的 HTML(例如,当你确信输出的内容是安全的),你可以使用。,从而避免执行其中的 JavaScript 代码。

2024-10-22 20:09:05 357

原创 详解代码提示中各符号的含义

是一个方法名。: ...)表示这个方法有两个参数,第一个参数是必需的,第二个参数是可选的。options参数的类型注解是一个复杂的类型,可以是一个具有可选encoding和flag属性的对象,也可以是null或undefined。方法返回一个Buffer对象(除非指定了encoding。

2024-10-22 19:27:33 171

原创 HTTP请求头部的Referer字段什么时候出现?什么时候不出现?

Referer字段(注意正确的拼写应为“referrer”,但HTTP标准中由于历史原因沿用了“Referer”)是HTTP请求头部的一个关键组成部分,它主要用于指示当前请求的来源页面。

2024-10-22 16:45:08 2212

原创 application/json是什么数据格式?

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于语言的文本格式来存储和表示数据。简单说,JSON是一种数据格式,不是一种编程语言,虽然它具有相同的语法形式,但它并不遵循JavaScript的语法规则。

2024-10-22 16:02:00 1750

原创 application/x-www-form-urlencoded是什么编码类型

application/x-www-form-urlencoded 是一种常见的媒体类型(Media Type)或者叫做MIME类型,在互联网中用于表示表单数据的编码格式。

2024-10-22 15:38:05 1875

转载 nodejs 框架 中文express 4.xxx中文API手册

比如,如果你放置下面所示的这个路由在其他路由的前面,那么其将要求从这个点开始的所有的路由进行验证操作和自动加载用户信息。来绕过剩余的路由回调。你可以使用这个机制来为一个路由设置一些前提条件,如果不能满足当前路由的处理条件,那么你可以传递控制到随后的路由。你可以使用这个机制来为一个路由设置一些前提条件,如果请求没有满足当前路由的处理条件,那么传递控制到随后的路由。你可以使用这个机制来为一个路由设置一些前提条件,如果请求没有满足当前路由的处理条件,那么传递控制到随后的路由。,挂载的路径是被剥离的和不可见的。

2024-10-22 15:20:11 124

原创 npm、nrm、nvm英文全称及作用

npm、nrm、nvm是nodejs开发中常用的三个工具,它们在版本管理和包管理方面发挥着重要作用。

2024-10-22 10:43:21 550

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除