<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[w84647517的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/w84647517</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; w84647517]]></copyright><item><title><![CDATA[携程任我行全自动核销]]></title><link>https://blog.youkuaiyun.com/w84647517/article/details/143281859</link><guid>https://blog.youkuaiyun.com/w84647517/article/details/143281859</guid><author>w84647517</author><pubDate>Mon, 28 Oct 2024 09:50:46 +0800</pubDate><description><![CDATA[支持手动，定时，对接数据接口等。]]></description><category></category></item><item><title><![CDATA[Vue 打包 ERROR TypeError: Cannot read property ‘tapPromise‘ of undefined]]></title><link>https://blog.youkuaiyun.com/w84647517/article/details/135987562</link><guid>https://blog.youkuaiyun.com/w84647517/article/details/135987562</guid><author>w84647517</author><pubDate>Fri, 02 Feb 2024 10:04:18 +0800</pubDate><description><![CDATA[把版本降到6.1.1即可。]]></description><category></category></item><item><title><![CDATA[[NestJs]用户鉴权的简单使用]]></title><link>https://blog.youkuaiyun.com/w84647517/article/details/135958061</link><guid>https://blog.youkuaiyun.com/w84647517/article/details/135958061</guid><author>w84647517</author><pubDate>Wed, 31 Jan 2024 17:14:50 +0800</pubDate><description><![CDATA[除了其强大的性能和可扩展性，NestJS的鉴权机制也使得它在构建安全的应用程序方面具有显著优势。通过守卫（Guards）和授权模块，NestJS简化了用户鉴权的过程，使开发者能够专注于业务逻辑，而不是安全细节。一旦您创建了守卫类，您需要将其应用于特定的路由或控制器方法。例如，如果您有一个UserController并希望限制对特定方法的访问，可以在该方法上使用@UseGuards(AuthGuard)装饰器。守卫类是一个使用@Injectable()装饰器的类，并实现了CanActivate接口。]]></description><category></category></item><item><title><![CDATA[[NestJs] 守卫(Guard)的使用]]></title><link>https://blog.youkuaiyun.com/w84647517/article/details/135957186</link><guid>https://blog.youkuaiyun.com/w84647517/article/details/135957186</guid><author>w84647517</author><pubDate>Wed, 31 Jan 2024 16:50:18 +0800</pubDate><description><![CDATA[守卫（Guard）是一种特殊类型的中间件，用于保护路由并控制谁可以访问某个路由。守卫类似于中间件，但具有更特定的功能，用于处理路由级别的授权和认证。通过使用守卫，您可以实现诸如身份验证、授权和自定义逻辑等操作，以确定是否允许访问特定的路由或控制器方法。if (!在上面的示例中，我们创建了一个名为AuthGuard的守卫。该守卫实现了接口，该接口定义了方法，该方法用于确定是否允许访问特定的路由或控制器方法。在方法中，我们首先从请求头中获取认证信息（authHeader。]]></description><category></category></item><item><title><![CDATA[[NestJs]管道验证、字段验证]]></title><link>https://blog.youkuaiyun.com/w84647517/article/details/135933836</link><guid>https://blog.youkuaiyun.com/w84647517/article/details/135933836</guid><author>w84647517</author><pubDate>Tue, 30 Jan 2024 15:43:03 +0800</pubDate><description><![CDATA[实例化并接受返回的实例，使用 class-validator 进行验证，返回验证错误的数组，如果数据长度不为空的话则验证失败，返回的结构如下。抛出 HTTP 异常，其中包含验证错误信息,这里抛出的异常可以使用之前的文章里写过的。第二种方法写起来比较简单，推荐使用第二种方法,验证不通过返回的错误同样可以使用。管道（pipes）是一种有效的方式来处理输入数据的验证和转换。直接在需要验证的接口中传入即可。在项目中新建pipe文件，如。为我们创建的DTO的元数据。为通过结果传入的数据，去拦截然后返回给用户。]]></description><category></category></item><item><title><![CDATA[[NestJs]错误拦截器，异常过滤器]]></title><link>https://blog.youkuaiyun.com/w84647517/article/details/135911080</link><guid>https://blog.youkuaiyun.com/w84647517/article/details/135911080</guid><author>w84647517</author><pubDate>Mon, 29 Jan 2024 14:16:08 +0800</pubDate><description><![CDATA[在应用程序开发中，难免会遇到各种错误和异常。为了更好地处理这些情况，NestJS 提供了错误拦截器。错误拦截器允许我们在应用程序的不同层次上捕获、处理和转换异常，从而提高应用程序的可维护性和稳定性。});在上面代码中，创建了一个 HttpFilter 类，它捕获 HttpException 类型的异常。]]></description><category></category></item><item><title><![CDATA[[NestJS]响应拦截器（统一接口返回格式）]]></title><link>https://blog.youkuaiyun.com/w84647517/article/details/135897082</link><guid>https://blog.youkuaiyun.com/w84647517/article/details/135897082</guid><author>w84647517</author><pubDate>Sun, 28 Jan 2024 16:48:18 +0800</pubDate><description><![CDATA[在NestJS中，拦截器是一种强大的工具，用于在 HTTP 请求和响应的处理过程中插入自定义的逻辑。它们的作用就像是对整个请求-响应管道的一种控制器，允许您在处理请求或响应的不同阶段执行额外的任务。通俗地说，NestJS拦截器就像是一位自动化的管家，可以在整个请求-响应过程中为您执行一些特定的任务。请求拦截器：就像在餐厅点餐前，有个人会在你的请求前检查是否有会员卡、是否已登录等。在NestJS中，请求拦截器可以在处理请求之前执行一些任务，比如身份验证、请求日志记录等。]]></description><category></category></item><item><title><![CDATA[[NestJS]文件下载与文件流下载]]></title><link>https://blog.youkuaiyun.com/w84647517/article/details/135893183</link><guid>https://blog.youkuaiyun.com/w84647517/article/details/135893183</guid><author>w84647517</author><pubDate>Sun, 28 Jan 2024 11:27:44 +0800</pubDate><description><![CDATA[/ 文件内容的数据// 当前数据索引// 初始化文件内容数据// 例如，这里可以是你要生成的文件内容// 生成文件内容的可读流read() {// 读取下一行数据并推送到流中} else {// 数据已全部推送完毕，结束流});NestJS提供了灵活而强大的工具，使得文件下载和文件流下载变得非常简单。我们可以根据项目需求选择适当的方法来实现文件下载功能，提供更好的用户体验。]]></description><category></category></item><item><title><![CDATA[[NestJS]文件上传、保存到本地、静态资源访问]]></title><link>https://blog.youkuaiyun.com/w84647517/article/details/135866668</link><guid>https://blog.youkuaiyun.com/w84647517/article/details/135866668</guid><author>w84647517</author><pubDate>Fri, 26 Jan 2024 16:31:59 +0800</pubDate><description><![CDATA[传入FileInterceptor(key)并使用UploadedFile装饰器在request中提取file文件，file的类型为Express.Multer.File，可以在express中导入方便我们编写代码。需要注意的是 FileInterceptor 在 @nestjs/platform-express 导入，而UseInterceptors则在@nestjs/common中导入。定义一个名为storage的变量，使用了multer.diskStorage()方法来配置如何存储上传的文件。]]></description><category></category></item><item><title><![CDATA[【NestJS】安装脚手架及目录说明]]></title><link>https://blog.youkuaiyun.com/w84647517/article/details/135837206</link><guid>https://blog.youkuaiyun.com/w84647517/article/details/135837206</guid><author>w84647517</author><pubDate>Thu, 25 Jan 2024 10:52:05 +0800</pubDate><description><![CDATA[【代码】【nestjs】安装脚手架及目录说明。]]></description><category></category></item><item><title><![CDATA[v3 异步动态组件创建]]></title><link>https://blog.youkuaiyun.com/w84647517/article/details/124099620</link><guid>https://blog.youkuaiyun.com/w84647517/article/details/124099620</guid><author>w84647517</author><pubDate>Mon, 11 Apr 2022 15:04:18 +0800</pubDate><description><![CDATA[异步动态组件创建
&lt;template&gt;
  &lt;div&gt;
    &lt;component :is="comps[compIndex]['comp']"&gt;&lt;/component&gt;
    &lt;button @click="change"&gt;切换组件&lt;/button&gt;
  &lt;/div&gt;
&lt;/template&gt;

&lt;script setup lang="ts"&gt;
import { defineAsyncCompon]]></description><category></category></item><item><title><![CDATA[vue3生命周期]]></title><link>https://blog.youkuaiyun.com/w84647517/article/details/124094952</link><guid>https://blog.youkuaiyun.com/w84647517/article/details/124094952</guid><author>w84647517</author><pubDate>Mon, 11 Apr 2022 11:29:34 +0800</pubDate><description><![CDATA[vue3生命周期
  onBeforeMount(()=&gt;{
     console.log(document.getElementById('test'),'onBeforeMount','组件的根元素还不存在dom还未渲染')
  })
  onMounted(()=&gt;{
    console.log(document.getElementById('test'),'onMounted','组件已被渲染，元素可用')
  })
  onBeforeUpdate(()=&gt;{
   
]]></description><category></category></item></channel></rss>