![](https://img-blog.csdnimg.cn/direct/3fa42aa6d1904637bec40a4aaead0e0a.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
NestJS 最佳实践手册
文章平均质量分 83
Node NestJS 框架最佳实践
乐闻x
一个不安分的前端,还搞过两年后端开发
展开
-
NestJS 如何自定义中间件以及实际项目基于中间件提升项目开发效率
NestJS 作为一个强大的 Node.js 框架,允许你通过中间件对请求和响应进行处理。中间件的概念在其他许多框架中也存在,它们在请求处理流程的早期执行,因此非常适合执行如日志记录、请求验证、设置响应头等任务。在这篇教程中,我将通过一个简单的示例,展示如何在 NestJS 应用中创建和使用自定义中间件。原创 2024-01-12 23:42:03 · 1193 阅读 · 3 评论 -
一篇文章学会如何轻松集成 Swagger 到 NestJS 项目
NestJS是一个高效且适用于构建服务器端应用程序的框架,它基于Node.js并且被设计为灵活和可伸缩。Swagger,现在更多被称为OpenAPI,是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。集成Swagger到NestJS可以大大提高你的API的文档质量,并提供一个交互式的用户界面,供开发人员和最终用户使用。本文将详细介绍如何在 NestJS 项目中集成 Swagger。原创 2024-01-12 23:28:45 · 1557 阅读 · 0 评论 -
什么是Session以及如何在 NestJS 项目中的优雅管理 Session
众所周知,HTTP协议是无状态的,这意味着每次浏览器请求服务器的时候,服务器并不知道这个请求与之前的请求是否来自同一个用户。这就像你每次到咖啡店,咖啡师都不记得你喜欢什么口味的咖啡一样。为了解决这个问题,Session被设计来跟踪和保持用户的状态。Session可以被理解为服务器端存储的一块空间,每个用户都有一个独立的Session空间,用来保存用户相关的信息,比如用户的登录状态、购物车中的商品等。原创 2024-01-11 23:53:19 · 1137 阅读 · 0 评论 -
前端离线存储能力:如何在 React 中巧妙运用IndexedDB
当我们开发复杂的Web应用时,常常需要在客户端存储大量数据。你可能听过 `localStorage`或者 `sessionStorage`,但它们在存储空间和功能上都有限。而今天我们要聊的,是一个功能更强大的技术:**IndexedDB**。IndexedDB是一个运行在浏览器中的非关系型数据库。它让你能够存储大量的数据,并具有高性能的查询能力。不像localStorage只能存储字符串,IndexedDB可以存储各种类型的数据,比如文件、Blob,以及你可以想到的其原创 2024-01-11 23:52:12 · 1861 阅读 · 0 评论 -
实战篇:如何在 NestJS 项目中支持 i18n 国际化本地化
在当今全球化的互联网环境下,为软件添加国际化(Internationalization,通常简称为i18n)支持变得至关重要。NestJS 作为一个现代、功能丰富的 Node.js 框架,提供了强大的国际化机制。本文将指导您如何在 NestJS 项目中实现 i18n 功能。i18n 是国际化的缩写,数字 18 代表起始字母 “I” 和结束字母 “n” 之间的字母数。在 NestJS 中实现 i18n 意味着您的应用可以支持多种语言,根据用户的偏好显示内容。原创 2024-01-09 23:33:06 · 743 阅读 · 0 评论 -
NestJS 支持自定义CLI命令行?一篇文章深入Command装饰器使用
NestJS 作为一个高效、可扩展的 Node.js web 框架,其设计上受到 Angular 的启发,提供了强大的模块化与依赖注入特性。前端的开发者们早已习惯于这些概念,并且这种设计哲学也在 Node.js 的后端开发中大放异彩。@Command。这是 NestJS CLI 的一个特性,允许你创建自定义的命令行指令 (CLI commands),它可以极大地增强你的后端服务的可交互性和灵活性。让我们步入正题,现在,我们要创建一个简单的命令,它将用于输出 “Hello World”。原创 2024-01-09 23:15:31 · 1752 阅读 · 0 评论 -
解决 NestJS 项目中接口跨域问题的三种方案
当我们的NestJs后端服务需要被不同源的前端项目访问时,就可能遇到“跨域问题”。跨域问题(CORS,Cross-Origin Resource Sharing)本质上是浏览器的一种安全机制,用于限制一个源(origin)中的web应用如何与另一个源的资源进行交互。幸运的是,NestJs提供了一些简单的方法来解决这一问题。CORS是一种机制,它使用额外的HTTP头来告诉浏览器让运行在一个源(domain)上的Web应用被准许访问来自不同源服务器上的指定资源。原创 2024-01-08 23:41:09 · 2095 阅读 · 0 评论 -
如何在 NestJS 中使用 TypeORM 实现多数据库连接配置
当你打算在一个 NestJS 应用中操作多个数据库时,TypeORM 提供了优雅而强大的解决方案。在本教程中,我们将一步步了解如何在 NestJS 项目中配置 TypeORM 以使用多个数据库。现在你已经了解了在 NestJS 应用中使用 TypeORM 设置和操作多个数据库的完整流程。通过上述步骤,你不仅可以连接单一数据库,而且还能够灵活地同步操作多个数据库。原创 2024-01-08 23:05:09 · 2059 阅读 · 0 评论 -
打造清晰的日志管理策略:如何在 NestJS 中集成 winston 高级日志系统
在Web应用程序的开发过程中,日志管理是不可或缺的一部分。日志可以帮助我们了解应用程序的运行状态,监控系统行为,以及在出现问题时快速定位和解决问题。对于使用NestJS框架的项目来说,集成一个高效、可扩展的日志系统尤为重要。在本教程中,我们将探讨如何在NestJS项目中集成日志系统,并管理系统日志。为了将选择的日志库(如winston)整合到NestJS中,你需要创建一个自定义的。你可以在这个服务中定义日志的各种级别,比如debuginfowarn和error。原创 2024-01-06 20:04:13 · 1585 阅读 · 0 评论 -
一篇文章学会在 NestJS 中优雅实现定时任务,Cron Task 最佳实践与技巧
NestJS 是一个强大的Node.js框架,它帮助开发者以优雅、模块化的方式构建高效、可扩展的服务器端应用程序。本文旨在简洁明了地向你展示如何在NestJS中启用和使用定时任务,即使你是初次接触这个话题,也能够快速上手。定时任务,也称为计划任务,是后端服务中常用的一个功能,它允许你在指定的时间执行代码。想象一下,你需要每天早上6点发送邮件通知或者每隔一小时刷新你的应用数据,这些都可以通过定时任务来完成。NestJS中的定时任务功能强大而且易于使用。原创 2024-01-06 19:59:40 · 1449 阅读 · 0 评论 -
微服务管家:NestJS 如何使用服务发现 Consul 实现高效的微服务节点管理
在微服务架构中,服务发现是一项基础且关键的功能,它允许服务实例在网络中被动态发现。Consul 是一种服务网格解决方案,提供了服务发现、运行状况检查,过去和现代应用程序的连接等功能。本教程将向您展示如何在 NestJS 框架中集成 Consul 实现服务发现的能力。Consul 是由 HashiCorp 公司开发的一种服务网格解决方案,它提供完整的服务网格特性,并且可以在任何运行您的应用程序的环境中运行。服务发现。原创 2024-01-05 23:30:29 · 1371 阅读 · 0 评论 -
一篇文章学会如何在 NestJS 中开启微服务,微服务实战分享
在软件开发的世界里,微服务架构是一个经常被提及的概念。但它到底是什么意思呢?为什么现在这么多团队和公司选择使用微服务?而NestJS又是如何帮助开发者构建微服务的?想象一下,你想建一座大厦。你可以选择由一间强大的公司全权负责,从地基到尖塔的每一部分;另一种方法是,你选择多间专业的小公司,一家负责电梯,一家负责供电系统等等。每间公司都是建筑部分的专家,并负责自己区域内的一切。微服务就是采用这后者的思路,但对象是软件应用。原创 2024-01-05 23:27:39 · 1183 阅读 · 0 评论 -
一篇文章学会如何在 NestJS 中集成 MongoDB 并实现数据的增删改查操作
在现代的Web应用程序开发中,无论是在数据存储、检索、还是数据流转的各个环节,数据库都扮演着极其重要的角色。MongoDB是一个基于分布式文件存储的开源数据库系统,以其高性能、高可用性和易扩展性著称。作为JavaScript社区最受欢迎的后端框架之一,NestJS 提供了优雅的解决方案来与各种数据库进行交互,其中就包括了对MongoDB的支持。本教程将通过一个简单而通俗的实例,带你在NestJS中集成MongoDB。我们将创建一个简易的用户管理系统,实现用户的增删改查操作。原创 2024-01-04 21:32:27 · 1752 阅读 · 0 评论 -
一篇文章学会如何在 NestJS 中使用 Redis 并基于 Redis 实现接口访问限频率
在处理高频数据操作和大规模并发请求的场合,我们需要一种机制能够快速读取和缓存数据,这时 Redis 就闪亮登场了。Redis 是一个开源的内存中数据结构存储系统,它可以用作数据库、缓存和消息中间件。NestJS 是一个灵活且模块化的Node.js框架,它借鉴了Angular的设计哲学,提出了控制器、提供者和模块的概念,这为我们集成和使用Redis提供了便利。本文介绍如何在NestJS框架中集成Redis,并通过实际案例来展示使用Redis的优势。原创 2024-01-04 20:56:34 · 2019 阅读 · 0 评论 -
如何在 NestJS 项目中优雅的使用发布订阅工具 Event Emitter
在构建复杂的应用时,异步处理和解耦成为了关键所在,而发布订阅模式正好可以辅助实现这两点。在这篇文章中,我们将详细介绍在使用 NestJS 进行 Web 开发时,如何利用包进行发布订阅模式的实现。发布订阅模式是一种广泛使用的消息传递方式,发布者发布消息,订阅者订阅关注的消息,然后接收这些消息。发布者和订阅者之间不存在直接联系,它们通过消息队列或者主题进行通讯。这种模式能够确保系统的解耦,异步处理以及消息的广播。定义一个事件,例如) {}通过以上步骤,你已经成功在 NestJS 应用中使用。原创 2024-01-03 21:30:16 · 552 阅读 · 0 评论 -
一篇文章学会使用 NestJS 的 Module 实现高效的代码模块管理
在构建大型Web应用时,代码的组织和管理往往十分复杂。有没有一种方式可以使应用的每一个部分可以过分承担工作并保持独立,同时又能一起协作实现应用的完整功能呢?本文将为您详细介绍NestJS模块的概念以及创建过程。NestJS模块类似于工厂中的各个部门,每个部门有一套自己的工作模式,但最终共同完成整个生产流程。通过这篇文章,您不仅将理解NestJS模块是什么,更能掌握如何创建自己的自定义模块,使你的NestJS应用更加强大和易于管理。原创 2024-01-03 21:27:25 · 1189 阅读 · 0 评论 -
一篇文章学会如何使用 NestJS 的五种 Provider 提供者
在构建复杂的后端应用中,如何有效地管理和彼此协作的各个部分,以及如何共享和复用功能已成为开发者们重要关注的问题。覆盖这些需求的一种技术就是 NestJS 中的 Providers。这次,让我们一起深入探讨这个关键概念,解密 Providers 的奥秘,了解它们是如何提供和分配服务的。Provider 是 NestJS 中的一种核心构建块,它提供了封装与分享服务逻辑的方式。实际上,你可以将 Provider 看作是一种可以注入到任何地方的对象或实体。这些对象可以是类、工厂、值甚至更复杂的结构。原创 2024-01-02 21:52:59 · 608 阅读 · 0 评论 -
一篇文章学会如何使用 NestJS 的 Pipes 管道实现高效的数据转换和验证
当我们基于NestJS框架构建和管理应用程序时,为了保障其安全性,我们常常需要对某些敏感操作或敏感信息的访问进行限制,这是我们需要使用到守卫的地方。它作为一种可以阻止未经授权的访问的机制,对我们的应用程序起到了守护的作用。在这篇文章中,我将深入剖析 NestJS 的守卫,以帮您全面了解这个概念。我会从解释其背后的工作机制开始,接着介绍使用守卫的各种场景,并以详细的示例来演示如何在 NestJS 项目中实现和使用守卫。什么是 Guards 守卫。原创 2024-01-02 20:57:29 · 950 阅读 · 0 评论 -
一篇文章学会如何使用 NestJS 的 Guards 守卫实现系统用户身份验证和授权
当我们基于NestJS框架构建和管理应用程序时,为了保障其安全性,我们常常需要对某些敏感操作或敏感信息的访问进行限制,这是我们需要使用到守卫的地方。它作为一种可以阻止未经授权的访问的机制,对我们的应用程序起到了守护的作用。在这篇文章中,我将深入剖析 NestJS 的守卫,以帮您全面了解这个概念。我会从解释其背后的工作机制开始,接着介绍使用守卫的各种场景,并以详细的示例来演示如何在 NestJS 项目中实现和使用守卫。什么是 Guards 守卫。原创 2024-01-01 20:53:53 · 1277 阅读 · 0 评论 -
一篇文章学会如何使用 NestJS 的 Middleware 中间件,让你的应用灵活可扩展
当我们基于NestJS框架构建和管理应用程序时,常常需要在特定的阶段执行一些额外的操作,例如在接收请求时进行身份验证,或在发送响应之前添加一些自定义的HTTP头。这就是我们需要理解和使用NestJS中间件的原因 ——它就像一道门,所有的请求必须要过这道门,而我们可以在门上挂上各种“魔法”,使得我们的应用程序更强大、更容易管理。什么是NestJS中间件NestJS中间件实际上就是一个函数,这个函数可以对请求或响应对象进行一些操作,或者在传递给下一个处理程序之前进行一些预处理。原创 2024-01-01 20:15:59 · 720 阅读 · 0 评论 -
一篇文章学会如何使用 NestJS 的 Filter 过滤器处理系统全局异常情况
当一个程序运行过程中发生了异常,并且这个异常没有被捕获处理,用户就会看到一些奇怪的错误信息,这种现象对用户体验非常不好。此时,NestJS的过滤器就登场啦!过滤器可以用来捕捉未被处理的异常,然后以一种更有秩序、更友好的方式显示,极大提升了用户体验。上面例子展示了NestJS过滤器强大的自定义能力,我们可以按照应用程序的需要来实现复杂的异常处理逻辑。但是,请注意,在过滤器中应避免进行太复杂的操作,以免增加调试的难度和系统的复杂性。原创 2023-12-30 23:02:01 · 726 阅读 · 0 评论 -
一篇文章学会如何使用 NestJS 的 Interceptor 拦截器并且附带实战操作案例
在现代Web开发的世界中,NestJS以其灵活性和强大的功能立足,成为Node.js框架的佼佼者。其中一个引人注目的功能就是拦截器,这是一种可以让开发者更好地控制和补充HTTP请求循环的工具。拦截器让开发者可以在处理程序之前或之后“拦截”HTTP请求,这是解决一系列问题的基石。简单来说,拦截器是一种特殊类型的服务,运行在路由处理程序方法之前和之后。它们在每次请求和响应的生命周期中都被调用,能够在请求处理之前进行操作,或对从处理程序返回的响应进行转换。原创 2023-12-30 22:41:38 · 796 阅读 · 0 评论 -
一篇文章掌握如何在 NestJS 中安全高效的管理 Config 全局配置文件
应用程序通常需要在多种环境中运行,比如本地开发环境、测试环境和生产环境。在不同的环境中,我们通常需要采用不同的配置设置。举个例子,本地环境可能需要一个特定的数据库凭据,而生产环境则使用另一组完全不同的数据库凭据。由于这些配置变量频繁地改变,因此最佳实践是将它们存在环境变量中。在Node.js中,外部定义的环境变量可以通过全局变量来访问。一种可能的做法是在每个环境中设置不同的环境变量,然而这样做在管理上变得越来越复杂,特别是在需要频繁模拟或更改这些值的开发和测试环境中。一个常见的做法是使用.env。原创 2023-12-29 22:20:52 · 912 阅读 · 0 评论 -
一篇文章掌握 NestJS 所有的生命周期以及生命周期的执行时机
NestJS 是一个用于构建高效、可扩展的 Node.js 服务器端应用程序的框架,它使用 TypeScript 作为开发语言,也支持原生的 JavaScript。在 NestJS 中,生命周期事件是一个重要的概念。在我们构建和管理应用程序时,有时需要在特定的阶段执行一些操作,例如在创建实例,添加或删除模块,突然终止程序时,对这些事件加以利用,可以使我们的应用程序更强大、灵活。在本文中,我将介绍 NestJS 的生命周期,如何使用生命周期,并通过给出详细的例子加深理解。原创 2023-12-29 21:10:20 · 1207 阅读 · 0 评论 -
如何在 NestJS 项目中自定义装饰器,四种不同类型装饰器Decorator
类装饰器在声明前被申明,它接受类的构造函数作为参数。// 添加自定义逻辑...// 例如,我们可以添加新的属性或方法创建装饰器后,我们就可以开始使用它。//...总的来说,创建自定义装饰器是一种强大的技术,让我们的代码变得更加轻量,逻辑更加清晰。理解并使用装饰器是我们深化对 NestJS 的理解,并充分利用其强大功能的关键。尽管本文已经为你介绍了如何创建各种类型的装饰器,确保在实战中正确使用它们仍然是很重要的。值得注意的是,尽管装饰器具有强大的功能,但应谨慎使用。原创 2023-12-25 21:36:03 · 770 阅读 · 0 评论 -
如何使用 NestJS 集成 Passort 和 JWT Token 实现 HTTP 接口的权限管理
开发一个接口很容易,开发一个具有安全性的接口却不容易。成熟的后端服务项目最注重的一点就是如何保护系统的数据安全,不能让用户无脑的访问操作所有的数据,这是不合理更是极度危险的行为。NestJS 作为企业级后端开发框架,自然会提供一套权限校验的方案,本文基于NestJS的passort方案,结合 jwt token 完成对系统服务的保护。本文介绍了如何对请求进行信息校验,对于没有携带Token的请求进行防御性拦截,这保证了基础的保护作用。原创 2023-12-21 23:28:17 · 1833 阅读 · 0 评论 -
基于NestJS 和 TypeORM 实现 CURD RESTful API接口
对于服务端项目而言,对外如何提供合格规范的HTTP接口,对内如何优雅的操作数据存储,比如mysql、mongodb。本文是NestJS服务端开发的基础入门教程,我会根据成熟的解决方案,给大家详细介绍如何基于NestJS实现开发RESTful API,其中基于TypeORM操作mysql数据的增删改查。希望通过阅读完这篇文章后零基础的朋友也能够完成简单的服务端项目开发。本文基于Nestjs和TypeORM实现了最基础的CURD接口,也提供了对应的实战代码和效果截图,希望能够帮助到有需要的朋友。原创 2023-12-20 23:33:47 · 731 阅读 · 0 评论 -
服务端主动给客户端发消息?实战教学:使用Nestjs实现服务端推送SSE
服务端消息推送SSE是常用的服务器消息通信手段,适用于服务器主动给客户端发送消息的场景,例如私信通知,扫描登录等都可以使用SSE实现。SSE的底层原理是客户端与服务端建立 HTTP 长链接。Nestjs 框架内置了对SSE的支持,本文详细介绍Nestjs服务端推送服务的实战步骤。由于 Nestjs 底层是依赖rxjs实现数据流,Nest 的 SSE 方法返回的是Observable,在SSE服务长链接时,希望在中途能够通知Observable返回不同的数据。基于rxjs的Subject。原创 2023-12-17 18:16:03 · 575 阅读 · 0 评论 -
NestJS入门手册:零基础开发第一个 HTTP 接口
NestJS 是一个用于开发高效、可扩展的 Node.js 服务器端应用程序的框架。其优雅的 TypeScript 支持和深度集成的系统模块,使得开发复杂的后端服务变得前所未有的简单。在这篇文章中,我们将介绍 NestJS 的基础知识,帮助你快速入门。Nestjs 是一个非常强大的 Node 框架,它支持了很多能力丰富后端项目工程,本篇教程只是对Nestjs的浅尝辄止,后续我们继续深入Nestjs的更多方面。原创 2023-12-17 15:52:58 · 357 阅读 · 0 评论 -
一文教会你如何使用Vercel部署你的Nestjs应用
当我们学习nestjs框架想跟朋友分享自己的接口,当我们开发了自己的应用想对外开放给其他人使用,我们需要一台有公网IP的电脑设备。在各大云厂商平台掏钱购买云服务器是一个不错的选择,但是,在我们学习或者业务体量较小的阶段,能够**白嫖服务器资源**肯定是一件让人快乐的事。Vercel平台就是这样的平台,它支持免费部署各种服务。本文会详细记录Vercel 部署Nestjs项目的步骤。原创 2023-12-14 23:12:26 · 794 阅读 · 4 评论