技能小册一月 15, 2025单例模式什么是单例模式?单例模式(SingletonPattern)是简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。简单的说就是不管实例多少次,最终返回的是首次的实例对象;单例模式不仅减少了内存的开销,并且解决了一部分在全局变量中冲突的问题。单例模式确保一个类只有一个JavaScript
技能小册一月 15, 2025发布订阅什么是发布订阅发布订阅是一种软件设计模式和通信范式,它旨在促进不同软件组件间的松散耦合通信。在订阅发布模式中,有如下两个核心概念:发布者:负责发布信息或事件。发布者并不直接将消息发送给特定的接收者,而是将其发布到一个共享的通信媒介——通常是被称为“主题”(Topic)、“频道”(Channel)或“JavaScript
技能小册一月 15, 2025订阅发布与观察者区别{%noteinfosimple%}在JavaScript中,订阅发布(Publish-Subscribe)模式和观察者(Observer)模式都是用于实现对象间解耦通信的设计模式。虽然这两种模式有相似之处,但它们之间存在一些关键的区别:{%endnote%}概念上的不同:观察者模式:是一种对象行为JavaScript
技能小册一月 15, 2025观察者模式观察者模式?是一种一对多的关系,当一个对象发生改变时,其他依赖者都会收到对应的通知并及时更新;就比如说:现场拍卖,台上的是观察者,当商品价格发生改变时就会更新通知所有的竞拍者,其中一件商品对应了多个竞拍者,体现了一对多的关系;可以参考如下图片:简单案例classObserver{constructoJavaScript
技能小册十一月 8, 2024Nest-JWT授权介绍身份验证是大多数应用的重要组成部分。有许多不同的方法和策略来处理身份验证。任何项目所采用的方法都取决于其特定的应用需求。本章介绍了几种可以适应各种不同要求的身份验证方法。让我们充实我们的要求。对于此用例,客户端将首先使用用户名和密码进行身份验证。一旦通过身份验证,服务器将发送一个JWT,该JWTNest
技能小册十一月 8, 2024Nest-中间件Nest中间件中间件实在路由处理程序之前调用的函数;同时可以访问请求和响应对象,以及程序请求响应周期中的next()中间函数;简单理解就是:前端路由守卫,做拦截处理;常见的中间件使用方式大致为:class,函数使用使用cli命令自动生成中间件模板:nestgmiloggerimport{InjectNest
技能小册十一月 8, 2024Nest-入手Demo简单了解一些Nest,结合之前我开发的一个小工具日志上报插件,做一个小应用;这个应用是什么?有这么一个场景,我在web页面使用了日志上报插件,但是插件的dsn地址是没有的,这个地址需要后端的一个接口地址,那我们用Nest模式一下这个接口地址;接下来,实践一下:初始化项目首先,去官网找一下安装命令npNest
技能小册十一月 8, 2024Nest-初识 NestNest是什么?Nest是一个用于构建高效且可伸缩的服务端应用程序的框架。明明都已经有了node为什么还要搞其他的呢?起初Node是作为服务端应用的,最熟悉的一个项目就是Node社区,它的源码就是用的Node+mongodb,可以说Node就是Node社区的灵魂。Node社区也是在node上昙花一现Nest
技能小册十一月 8, 2024Nest-其他配置当然还有很多nest的配置,队列,任务调度,缓存,验证等,这里只介绍最常用的。验证文档举个例子来说,后端添加用户功能,肯定有很多字段是必填的,那不能每个字段都去校验吧,那么这一功能的判断就很多很多了,并且后面维护起来相当麻烦,为了解决这一麻烦那么刚好可以使用内置的校验pnpmaddclass-valNest
技能小册十一月 8, 2024Nest-加载环境文件介绍前俩篇讲解了快速入门nest,接下来大致介绍一下nest项目如何进行改造;项目中一般都会用到中间件,拦截器,参数管道校验等等,接下来分多个方向大致介绍这些如何在项目中使用;项目改造类似于vue项目,有一些成熟的方案去管理你的项目,提交规范,代码风格,代码规范,环境变量等等;改造的范围大致分为以下Nest
技能小册十一月 8, 2024Nest-拦截器介绍拦截器是用@Injectable()装饰器注释并实现NestInterceptor接口的类。拦截器具有一组有用的功能,这些功能的灵感来自面向方面编程(AOP)技术。它们可以:在方法执行之前/之后绑定额外的逻辑转换函数返回的结果转换函数抛出的异常扩展基本功能行为根据特定条件完全覆盖函数(例如,出于Nest
技能小册十一月 8, 2024Nest-数据库的配置数据库的配置在node服务中,不论使用的express还是nest,都是有一些配置,环境的配置,数据库的配置等等;那么俩者还是有些差别的;这里我列举mongodb和redis在nest中的使用;Mongodb依赖安装首先安装依赖:pnpmadd@nestjs/mongoosemongoose安装成功Nest
技能小册十一月 8, 2024Nest-异常过滤器介绍Nest带有一个内置的异常层,负责处理应用中所有未处理的异常。当你的应用代码未处理异常时,该层会捕获该异常,然后自动发送适当的用户友好响应。开箱即用,此操作由内置的全局异常过滤器执行,该过滤器处理HttpException类型(及其子类)的异常。当异常无法识别时(既不是HttpExceptionNest
技能小册十一月 8, 2024Nest-请求拦截器介绍在日常开发中,我们经常会碰见后端接口返回的信息数据,会发现不管请求成功还是失败返回的数据格式都是一样的,这个是如何做到的呢?编写使用nest命令nestgitcinterceptor,这个时候会生成一个文件,我们只需要在这个文件编写即可;import{CallHandler,ExecutionCNest
技能小册十一月 8, 2024Nest-路由守卫介绍守卫是一个用@Injectable()装饰器注释的类,它实现了CanActivate接口。守卫有单一的责任。它们根据运行时存在的某些条件(如权限、角色、ACL等)确定给定请求是否将由路由处理程序处理。这通常称为授权。授权(及其通常与之合作的身份验证)通常由传统Express应用中的中间件处理。中Nest