- 博客(185)
- 资源 (6)
- 收藏
- 关注
原创 [实战]用户系统-2-完善登录和校验以及VIP
jwt本身并不会作废,我们需要使用redis来辅助做个黑名单,需要将我们的token存到redis中一份,然后比对的时候,需要校验下redis里面是否存在。逻辑就是,我们注入vip属性,来为某个请求标记需要什么等级的vip,然后守卫拦截判断。看自己的代码优化了。我们上面已经做了登录的校验了,但是只是校验了token,如何让我们的系统能够拦截没有认证过的请求呢。之前我们模拟过用户的登录,本节将实现token的生成,校验,redis做黑名单。运行一下,发现不对了,因为我们刚刚登录的,并没有在redis中存。
2025-05-23 14:26:26
73
原创 [实战]用户系统-1-基础功能完善
此时就好了吗,并不能,因为你只是注册了模块,服务,好比我们的mongodb,你只是引入,但是没使用,我们也不需要手动使用logger。我们可以将我们的自定义的日志模块,替换到app上,让app直接操作,相当于替换下默认的logger。我们的用户系统实战,将会实现以下功能,登录,注册,登出,修改用户信息,上传头像,响应的格式化,请求拦截,vip标识。还记得我们前面几个章节讲的吗,我们的响应格式化,请求拦截,vip标识都会用到下面几个构件,忘记的小伙伴可以复习下。我们来处理下,使得支持存在数据库。
2025-05-21 18:43:37
175
原创 连接Redis数据库
完善redis.service.ts 我们引入了get,set,del的使用。如果你想用别的可以自己再写,或者通过getClient()拿到client直接调用方法。我们前面已经讲了如何连接mysql和mongodb,现在来进行Redis数据库等连接和使用。这里我们假设有获取token的方法,且已知了有效时间。会在后面的章节中带大家使用jwt来实现。我们依旧在user.service.ts中的test中来写。如果没有安装,先安装下Redis。在user.service.ts中完善逻辑。
2025-05-20 18:13:39
87
原创 prisma连接非关系型数据库mongodb并简单使用
操作mysql和mongodb使用,prisma用起来很舒服,方法都差不多,但定义的时候有些不同,后面实战的时候,会有示例。
2025-05-19 15:41:09
281
原创 prisma连接关系型数据库如mysql数据库并完善用户的增删改查
简单来说,就是让我们的数据库操作变得简单了。文档地址Prisma也支持mongodb后面我们的mongodb也会用Prismsa来操作。
2025-05-14 16:10:32
109
原创 library和配置管理
我们新建了一个lib,你可以引入一些环境变量,做额外的处理的处理等等,当然也可以不用单独写个lib,可以直接引入,或者你一样可以使用lib,将我们的配置文件都丢里面,而不是根目录新建一个configs文件夹。
2025-05-13 16:04:18
48
原创 管道-验证和转换
英雄联盟的老鼠说过一句话,条条管道通我家。管道一的脏水流到了管道二,管道二的脏水由于太脏了有杂物,堵住了去管道三的入口,所以通过不了(验证),去了管道四净化了下(转换了下),进入了别的管道。
2025-05-10 16:17:09
87
原创 自定义装饰器
如果你开发过spring boot项目,应该不模式,当然现在node也支持了。有一种设计模式叫做装饰器模式,装饰器写法就是体现。Nest提供了很多的装饰器,也提供了自定义装饰器的方法。让我们来自定义一个装饰器吧。来实现如下功能,假设我们在守卫,或者拦截器中对token进行了解析,得到了用户数据,我们总不至于每一个mapping都解析下request吧,这样就很烦人了,我们来实现一个装饰器来快速的获取request中的user。其实官方的示例中已经给了,我们来结合上一节的拦截器来实现下。
2025-05-09 15:43:13
57
原创 认识拦截器
老样子,先上文档地址如果你使用过axios,你可能知道请求拦截器和响应拦截器,我们在请求拦截器里面会做一些额外的处理,如header中添加token等等,响应拦截器则会统一处理响应,如异常请求抛出异常加个提示,对业务状态码进行处理等等。那Nest的拦截器的,其实概念是类似的。如下。请求前拦截一下,追加一些操作,响应后处理下,追加一些操作。看到这句话,你是否想到了在拦截器里面也可以实现守卫类似的功能,可以尝试下实现之前守卫课程的校验操作。
2025-05-09 11:46:44
498
原创 认识守卫-以及简单的示例和装饰器
官方的介绍如下文档警卫只有一个职责。它们根据运行时存在的某些条件(如权限、角色、ACL等)来确定给定的请求是否将由路由处理程序处理。这通常被称为授权。授权(及其通常与之协作的表亲身份验证)通常由传统Express应用程序中的中间件处理。中间件是身份验证的一个不错的选择,因为令牌验证和将属性附加到请求对象等与特定的路由上下文(及其元数据)没有强连接。简单来说,把请求当个人,controller当个小区,那守卫就是小区保安,我们想要请求打进去进行处理,首先要向保安证明身份,不然保安就不让你进去。
2025-05-08 20:54:51
194
原创 认识异常过滤器-以及简单的示例
一定要养成看文档的习惯,文档下面是官方的说法。Nest内置了一个异常层,负责处理应用程序中所有未处理的异常。当应用程序代码未处理异常时,该层会捕获异常,然后自动发送适当的用户友好响应。之前我们的课程中有看到404的异常,其实就是nest本身帮我们做了处理,而nest也支持我们自己对异常进行处理。在开始前,我们先把之前中间件的引入注释掉。可以拦截异常,那么如果我们不想把一些业务异常当作真的错误,可以自定义一套异常处理。
2025-05-08 00:09:38
279
原创 认识中间件-以及两个简单的示例
官方文档中间件是在路由处理程序之前调用的函数。中间件函数可以访问请求和响应对象,以及next()应用程序请求-响应周期中的中间件函数。下一个中间件函数通常用名为 的变量表示next。类似于express的中间件。官方文档也说了。多说无益,我们来讲如何写中间件以及如何使用中间件。
2025-05-07 22:34:09
520
原创 简单的学习Post,Get,Delete等以及请求路径和传参
上一节我们新建并且运行了一个项目,但是我们的请求路径是localhost:3000,但是实际项目肯定很复杂,接口很多,路径不一致,那怎么来修改路径呢。这里在@Controller里面多了个demo2,是为了区分路径前缀,比如我们有多个demo2的模块,这里肯定不能是空的了,不然会混乱,那它帮我做了什么呢。发现少了个包,如果你也出现了,可以安装下,npm install @nestjs/mapped-types。这里面的:id什么意思呢,就是路径参数,比如我们发起一个delete请求。
2025-05-07 14:50:56
50
原创 新建一个项目以及简单CLI
module可以理解为一个模块,我们的应用可以有多个模块,模块可以引用其他模块。controller可以理解为我们暴漏的接口地址,service用来处理具体的业务逻辑。比如我们的模块在应用中注册(引用)了,前端调了一个接口controller中的,然后处理了一些逻辑(service)。我们使用CLI来创建一个Nest项目,为了不让大家创建多个项目,我们的demo和前几个实战,将会放在一起。具体为什么,我们慢慢讲。在packages.json中可以看到,初始化项目的时候帮我们写好了运行指令。
2025-05-07 14:16:08
55
原创 什么是Nest?为什么要学?
Nest是一款后端开发框架,类似于spring boot,使用nodejs进行开发,这就使得前端人员可以快速的上手,更快的实现大前端!虽然是前端,但是啥都想干。这么高的star量,不心动吗。
2025-05-07 13:41:15
42
原创 记录搭建自己的应用中心-需求看板搭建
页面比较简单,逻辑为,当新增用户的时候,会生成一个uuid存在redis有效期10分钟,然后,链接携带该uuid,用户在授权页面,输入用户名,密码,会携带uuid,redis里面,uuid对应的有用户的信息,如果页面输入的和redis存的是一样的用户,则做认证处理。做了额外的守卫,这里命名比较随意,BdGuard为新增的登录授权,下面是原先的,都能通过。admin账号为默认创建,不可用于登录,这里显示了,其实不该显示,对应的是主应用情况下,微服务引用的时候,账号的所有操作均为管理员操作。
2025-05-02 00:09:55
504
原创 记录搭建自己应用中心
结合面板,面板上线后,可选更新版本,大版本,迭代版本,补丁版本,来更新版本号。结合git来实现标签tag的创建,方便回滚,应用发布分,构建,发布两个步骤。构建一个微前端的子应用,处理当是微前端形式启动的时候,隐藏菜单栏和顶部栏目,显示的应用信息通过主应用的 共享过去。目前只展示了用户,后面计划为,应用的分析,受欢迎页面分析,来源分析,版本信息,迭代周期,以及应用告警等等。一直想做个试试,这是一个简易版的,主要是整合下知识的,依赖包构建,微服务,微前端,等等。分别是核心库,处理库,工具库。
2025-04-25 14:22:55
868
原创 记录一次无界微前端的简单使用
其他的 比如接口什么的,服务端也要放通对应的地址。或者都交给nginx。因为会跨域 所以静态资源要允许跨域,子应用添加允许主应用跨域。因为使用的是vue项目主应用和次应用都是 所以用的封装的。你可以在主应用新建一个路由。props是共享的数据。安装 选择对应的版本。
2025-04-25 10:32:44
356
原创 实现一个专注应用-后端开发(二)-微信扫码登录(小程序实现)
调用接口 =》接口调用小程序的生成二维码 =〉二维码对应一个tag,把tag存在redis中,设置一分钟到期,用户扫码跳到小程序登录授权页面,授权后将生成的token和tag绑定,同时,展示二维码的页面,每隔几秒调用一次查询,过期告知过期,如果查到token则登录成功,登录成功销毁tag和token的绑定,如果想要知道用于已经扫码状态,可以多设计tag的状态。而jwt策略返回的user。但这里其实小程序是不需要返回token的,登录成功即可,把token塞到redis中,然后让提供扫码的页面进行轮询。
2025-03-10 15:14:57
881
原创 国产AI编辑器Trae体验(内置豆包大模型)
下载安装目前支持mac和windows和cursor一样,cursor支持导入vscode配置,trae支持两者,nice!;内置的是豆包大模型还支持掘金登录。这里可以选择模型。
2025-03-03 18:57:17
416
原创 记录封装一个请求包装函数
这里可以正确的类型推导,abort也正常执行。如果想做进一步的处理,如请求前加token,请求后的数据统一,可以使用拦截器。尝试封装一个请求记录函数,传入一个请求体,加工成页面需要的数据,还不够完善。只对 requestTask方法中的Promise部分进行修改。所以也可以考虑把公共逻辑抽离,做一个适配器?当然我们发现只有这一块代码是不一样的。让豆包帮我分析了下用到的设计模式。如果你想用axios 一样可以的。目前自用,插件市场地址。
2025-03-03 17:51:38
865
原创 实现一个专注应用-后端开发(一)-搭建
在迁移文件夹中,迁移文件会以时间戳和指定名称命名,例如 20231010123456_user,以便于识别和管理。npx prisma migrate dev --name user 是一个 Prisma CLI 命令,用于在开发环境中创建和应用新的数据库迁移。主要存放一些 拦截器,装饰器,工具方法等,项目小,不再拆分模块,一般公用的都塞到一个里面。如果你用的是vscode/cursor 可以安装下prisma的插件,有代码高亮会舒服很多,插件直接搜索prisma最多下载的就是。这个时候需要抽离出来。
2025-02-19 16:20:34
1041
原创 mqtt 传递和推送 温湿度计消息 js
包括设备管理,订阅管理,连接认证+订阅授权这里我新增了一个设备订阅组温湿度里面有两个订阅设备详情授权给设备使用。
2024-11-06 22:41:28
488
原创 vitepress 打包时Cannot use import statement outside a module
有些包可能不支持esm或者无cjs导出类型。去翻了下github。
2023-09-22 17:11:46
544
原创 一个简单的yapi工具-medmotion_cli
最近在使用yapi时发现了一个小工具,可以快速生成ts类型定义,js接口定义配合上自己写的工具
2023-07-31 14:31:47
428
vue-flask-video.zip
2021-03-04
image-recognition-flask-uniapp.zip
2021-03-04
bandicam 2020-11-04 17-10-06-422.mp4
2020-11-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人