NestJS 入门到实战 掌握未来前端工程师后端开发能力

Nest ()是一个开发框架,用于构建高效且可伸缩的Node.js服务器端应用程序。它利用了JavaScript的逐渐增强,使用并完全支持TypeScript(仍然允许开发者使用纯JavaScript进行开发),结合了OOP(面向对象编程)、FP(函数式编程)和FRP(函数式响应编程)。

在底层,Nest构建在一个强大的HTTP服务器框架上,比如Express(默认),也可以配置成使用Fastify!

Nest在这些常见的Node.js框架(Express/Fastify)上提高了一个抽象级别,但它仍然直接向开发人员公开了底层框架的API。这使得开发者可以自由使用无数适合底层平台的第三方模块。

哲学 近年来,Node.js和JavaScript已经成为和后端应用的“通用开发语言”。这导致了Angular、React、Vue等优秀项目的出现,这些项目提高了开发者的生产力,可以创建快速、可测试、可扩展的前端应用。然而,尽管Node(以及服务器端JavaScript)拥有大量优秀的软件库、辅助程序和工具,但它们都无法有效解决我们面临的主要问题,即架构。

Nest提供了开箱即用的应用程序架构,允许开发人员及其团队创建高度可测试、可扩展、松散耦合且易于维护的应用程序。这个建筑的灵感来自于棱角分明的。

固定 在开始之前,您可以使用创建一个项目或克隆一个启动项目(两种结果是相同的)。

若要使用构建项目,请运行以下命令。这将创建一个新的项目目录,并用核心嵌套文件和支持模块填充它,从而为项目创建一个传统的基本结构。建议初学者使用Nest CLI创建新项目。我们将在第一章中继续采用这种方法。

NestJS 入门到实战 掌握未来前端工程师后端开发能力 NestJS 入门到实战 掌握未来前端工程师后端开发能力 NestJS 入门到实战 掌握未来前端工程师后端开发能力 NestJS 入门到实战 掌握未来前端工程师后端开发能力

近几年快速发展的Node.js框架,掌握未来前端工程师后端开发能力

NestJS 在构建高效且可扩展的 Node.js 服务器端应用程序方面别具优势,越来越多的团队在大型 Node.js 服务端项目中使用 NestJS,非常值得前端学习。本课程是站内首门讲解 NestJS 的实战课,你将在 Brian 老师的带领下,顺滑地进入服务端开发领域,并掌握 NestJS 这项目技术的高效使用方法。

适合人群

1年以上经验的前端皆可学

技术储备

有良好的HTML/CSS/JS 开发经验;
有Vue、Node.js基础及开发经验;

 

环境参数

Nest.js 9.x
Node.js 14~16.x
TypeScript 4.x
数据库 MongoDB ;MySQL 5.7;Redis 6.x

课程目录

第1章 会Nodejs还有必要学nestjs吗?
Nestjs是当前流行的使用Typescript开发Node应用的企业级框架。Nestjs为了Node侧应用架构而生,它优秀的架构可以用在复杂的企业级项目开发,适合与React,Vue等技术全栈开发,同时支持微服务架构,技术功能全面,是TS写后端的最佳选择。...

视频:1-1 课程介绍 (20:08)
图文:1-2 Nestjs开发介绍
视频:1-3 什么是nestjs?应用场景是什么? (23:54)
视频:1-4 常见问题:对比koa&eggjs&express,nestjs优势是什么? (11:31)

第2章 快速
掌握服务端开发的基本流程,完成本地开发环境搭建,配置VSCode插件、docker容器环境等相关内容,了解在哪里获取Nestjs学习资源,为之后的项目开发建立知识储备。

视频:2-1 常见是什么?哪些核心的技术点? (16:12)
视频:2-2 前端息息相关的Nodejs版本介绍 (04:01)
视频:2-3 Node.js版本管理工具:nvm不能太好用 (09:18)
视频:2-4 包管理工具使用:cnpm&yarn&pnpm对比 (08:16)
视频:2-5 开发环境搭建准备:VSCode 和扩展+TypeScript配置 (15:31)
视频:2-6 数据库开发环境:Windows上快速搭建测试数据库环境 (06:17)
视频:2-7 开发环境:Docker介绍及创建数据库 (16:02)
视频:2-8 加餐:Docker配置加速+docker-compose容器管理工具 (14:13)

第3章 快速开发第一个nestjs程序【nestjs官方CLI助力】5 节 | 65分钟
本章学习Nestjs官方提供的CLI脚手架工具,了解RESTful接口及前后端分离场景下,如何设计接口及测试接口的工具。好的代码目录结构与全名方式,是后续写出优质项目的前提,介绍Nestjs最佳实践。

视频:3-1 快速上手:安装官方nestjs CLI工具 (13:31)
视频:3-2 基础中的基础:什么是REST&如何设计 (10:13)
视频:3-3 第一个nestjs应用: Hello World (08:37)
视频:3-4 最佳实践:工程目录+文件命名约定 (17:31)
视频:3-5 CLI初试:启动 Nest 应用程序 + 创建控制器 (14:25)

第4章 4 种实用的“提高开发效能”方法【nestjs应用开发技巧】4 节 | 27分钟
提升Nestjs开发效率,配置webpack热重载模式。学会读懂代码的前提是会如何调试程序,了解常见IDE如VSCode、Webstorm中如何配置Node.js前端项目调试,学习Chrome调试Node.js项目的方法。

视频:4-1 开发提效:配置Webpack热重载模式 (10:06)
视频:4-2 配置vscode调试任务.mp4 (04:23)
视频:4-3 配置webstorm调试任务 (04:45)
视频:4-4 如何使用Chrome开发工具调试 (07:14)

第5章 TypeScript与nestjs关系【选修】10 节 | 115分钟
TypeScript已是前端开发语言趋势,企业在招聘前端时都要求熟练掌握TS。本章结合现实的使用场景,由浅入深的介绍了TS的核心技术:类型、函数、对象、泛型等,让大家后续学习Nestjs的过程更顺畅。

视频:5-1 章导学 (15:35)
视频:5-2 基础类型&引用类型 (12:16)
视频:5-3 函数类型 (09:54)
视频:5-4 函数重载 (05:57)
视频:5-5 any&never&void&unknown区别与应用场景 (05:50)
视频:5-6 tuple与enum (06:48)
视频:5-7 Interface (18:04)
视频:5-8 Class类(修饰符、构建函数、接口扩展) (19:16)
视频:5-9 泛型 (09:53)
视频:5-10 声明文件&tsconfig配置文件 (10:53)

第6章 nestjs项目开发编程思想【编程思想】 试看7 节 | 90分钟
本周是学习Nestjs核心概念与编程思想的关键,打破前端同学学习后端的心理上的壁垒,用通俗易懂的语言来学习Nestjs中的概念:依赖注入(DI)、AOP(面向切面编程)等。

视频:6-1 如何学习才高效:以前端同学的视角看后端项目 (19:33)
视频:6-2 编程思想 :什么是OOP?FP?FRP编程? (20:32)
视频:6-3 编程思想:AOP切面编程是什么?特点是什么? (06:20)
视频:6-4 葵花宝典:什么是依赖注入(DI)&控制反转IoC (11:46)
视频:6-5 nestjs 架构篇:控制器、服务、数据访问(非常重要) (08:25)
视频:6-6 nestjs 架构篇:用模块来组织代码 (09:42)
视频:6-7 加餐:DTO,DAO是什么?MVC是什么架构? (13:39)

第7章 :通用业务框架设计【配置】9 节 | 100分钟
从项目全局分析通用业务框架的开发需求,学习后续开发思路,了解Nestjs概念概念并上手配置模块的开发,针对于开发场景下的多环境配置及Nestjs官方的配置模块的使用。

视频:7-1 全盘思路:项目分析与Nestjs核心概念深入理解 (17:43)
视频:7-2 学习路径:通用后端框架开发&4大核心模块 (08:55)
视频:7-3 多环境配置两种方案(优缺点比较) (14:37)
视频:7-4 官方方案:使用config设置配置模块- (09:46)
视频:7-5 官方方案进阶:增加环境变量、yaml文件读取 (09:19)
视频:7-6 官方方案进阶:嵌套配置yaml文件读取 (12:22)
视频:7-7 加餐:第三方库config读取json文件配置 (06:49)
视频:7-8 配置文件的参数验证Joi方案 (09:16)
视频:7-9 回顾与综合:命令行传参与配置模块结合 (10:42)

第8章 :通用业务框架设计【数据库】12 节 | 141分钟
数据库是后端开发中非常重要的一环,本周不仅了解Nestjs对接ORM库的意义,也完成了Nestjs通用业务框架与常见的ORM库TypeORM对接MySQL的集成。学习数据库设计、数据库的增删改查基本操作以及数据库常见关联关系(1:1、1:n、n:n)的实现。...

视频:8-1 ORM介绍:为什么nestjs能对接主流的所有数据库? (14:12)
视频:8-2 核心概念:关系型&非关系型、数据库设计工具、排行 (10:41)
视频:8-3 加餐:MySQL数据库中的实体(主键和列)概念浅析 (09:42)
视频:8-4 两种nestjs数据库解决方案:mongoose与typeorm(1) (17:22)
视频:8-5 数据库设计三大范式及ER图设计 (14:57)
视频:8-6 使用TypeOrm创建多个实体&创建1对1关系 (13:20)
视频:8-7 TypeOrm中一对多、多对多关系 (09:25)
视频:8-8 旧项目已有数据库怎么玩TypeORM:生成器来帮忙 (09:29)
视频:8-9 面向切面编程:TypeORM实现用户的CURD操作 (15:14)
视频:8-10 TypeORM关联查询:一对一、一对多关系 (09:11)
视频:8-11 高级查询:使用QueryBuilder进行联合查询 (14:18)
视频:8-12 TypeORM SQL语句调试&原生SQL能力 (02:43)

第9章 nestjs服务端开发:通用业务框架设计【日志收集】9 节 | 117分钟
通用业务框架的日志模块的设计,通过日志系统记录API接口操作,避免异常关机、掉电、非法接口请求等造成文件系统中数据异常等问题,方便回溯与回滚。Nestjs中通过异常过滤器实现异常的捕获,通过日志模块记录异常情况。

视频:9-1 日志有哪些类型?功能分类?记录位置? (09:49)
视频:9-2 nestjs内置日志模块Logger (07:08)
视频:9-3 全自动高性能日志模块:Pino、日志滚动pino-roll (11:44)
视频:9-4 高度集成的日志模块:winston (17:48)
视频:9-5 全局异常过滤器:配合winston记录日志(作业全局Filters) (17:15)
视频:9-6 作业解答:全局FIilters&如何获取请求IP (02:41)
视频:9-7 通用业务系统:日志模块代码重构(作业) (15:01)
视频:9-8 数据库代码重构:TypeORM Cli与Nestjs集成 (17:52)
视频:9-9 生产代码重构:TypeORM数据库及生产配置 (17:37)

第10章 nestjs服务端开发:接口开发17 节 | 262分钟
深入学习Nestjs的常用装饰器,了解接口开发中的CURD操作(增删改查)从前端到后端的整个过程,同时在本章搭建前端项目,完成Vue3+Pinia+Vue-router全家桶与Boostrap 5.x的集成,实操前后端请求与响应的流程。

视频:10-1 前端项目初始化:使用Vue全家桶+Bootstrap创建项目 (15:19)
视频:10-2 好用到飞起的前端HTTP Client:请求库Axios封装 (10:02)
视频:10-3 前端登录页面:介绍Boostrap的栅格系统,完成登录页面(作业) (14:02)
视频:10-4 表单校验:登录表单Bootstrap校验,模拟发送请求 (14:28)
视频:10-5 前端内容页:完成页面布局(创建路由) (16:02)
视频:10-6 前端详情页:完成表格布局(分页、筛选表单) (19:25)
视频:10-7 创建控制器:定义用户模块并创建控制器 (17:53)
视频:10-8 进阶:使用 @Param 和 @Body 解析请求 (15:19)
视频:10-9 查询:创建读取列表服务(业务分析&SQL基础) (09:46)
视频:10-10 查询:对接数据库查询操作(作业) (10:46)
视频:10-11 查询进阶:queryBuilder及几种JOIN的学习(1) (14:20)
视频:10-12 查询进阶:queryBuilder及几种JOIN的学习(2) (10:50)
视频:10-13 创建用户:创建及异常处理逻辑TypeORMFilter (19:04)
视频:10-14 (重要)remove&delete区别:控制器&服务&存储库命名规则 (15:55)
视频:10-15 更新:操作&数据库更新对接 (14:54)
视频:10-16 前端表单及模态框:创建新增、编辑、删除模态框 (17:17)
视频:10-17 前后端联调:页面CURD操作及接口响应(作业) (26:18)

第11章 nestjs服务端开发:登录鉴权17 节 | 212分钟
本章完成双闭环之“认证”闭环:学习前后端分离及JWT技术原理,集成passport-jwt到nestjs项目。前端项目完成登录&注册页面,并完成Nestjs通用业务框架中的认证逻辑,实现用户登录注册功能。通过鉴权守卫确认用户身份。...

视频:11-1 nestjs 后端注册登录简介:登录鉴权相关概念 (08:06)
视频:11-2 JWT的工作原理 (06:44)
视频:11-3 API接口安全相关知识(加密&算法&HTTPS) (05:27)
视频:11-4 nestjs鉴权库:JWT核心文档解析 (17:16)
视频:11-5 nestjs 用户认证:创建认证控制器 (10:35)
视频:11-6 操作:创建和保存用户 (12:42)
视频:11-7 Nestjs管道概念:三大类型管道及校验类管道创建过程 (08:50)
视频:11-8 管道:nestjs 基于装饰器的验证使用类验证器 (12:39)
视频:11-9 管道:nestjs内置管道及如何使用自定义管道 (13:54)
视频:11-10 (非常重要)回顾前置知识:完成JWT集成 (19:01)
视频:11-11 解析官方示例:LocalStrategy与JwtStrategy (08:45)
视频:11-12 JWT实操:sign与解析jwt (10:33)
视频:11-13 鉴权守卫:设置鉴权用户可访问的控制器(作业) (15:56)
视频:11-14 安全进阶:全局守卫、控制器守卫、守卫简化 (09:10)
视频:11-15 敏感信息操作:使用argon2库对密码进行加密 (18:35)
视频:11-16 拦截器前导学习:删除敏感信息 (13:59)
视频:11-17 拦截器进阶(序列化):敏感数据如何处理? (19:12)

第12章 nestjs服务端开发:RBAC权限系统设计16 节 | 234分钟
本章完成双闭环之“鉴权”闭环,经典的RBAC角色权限模型设计与实现,完成权限守卫功能开发。对接前端菜单页面,创建接口请求,实现不同用户角色登录之后访问不同的角色内容。

视频:12-1 权限控制导学:权限控制数据设计(预习作业) (08:30)
视频:12-2 前端内容页:创建角色页面(创建路由) (19:41)
视频:12-3 前端内容页:创建角色页面&菜单管理内容页面 (05:44)
视频:12-4 前端内容页:封装删除模态框组件(有作业) (11:05)
视频:12-5 前端内容页:封装useModal方法 (10:11)
视频:12-6 前端内容页:动态Form组件&封装新增编辑模态框 (19:49)
视频:12-7 前端内容页:完成动态Form组件及模态框数据传递 (16:13)
视频:12-8 前端内容页:菜单&角色新增与编辑模态框(作业) (09:05)
视频:12-9 后端开发:菜单及接口访问控制思想 (07:23)
视频:12-10 创建角色:CURD控制器及服务对接数据库(nest-cli作业) (12:36)
视频:12-11 创建菜单及数据对接:数据库migrations相关(非常重要) (14:51)
视频:12-12 权限控制:RABC权限关联路由与控制器 (18:57)
视频:12-13 基于策略的控制:流行的casl策略库介绍 (18:05)
视频:12-14 权限控制:与casl集成并完成策略权限控制(挑战) (17:11)
视频:12-15 权限控制:与casl集成完成自定义装饰器与守卫 (19:23)
视频:12-16 权限控制:与casl集成并完成策略权限控制(作业与奖励) (24:47)

第13章 nestjs服务端开发:单元测试5 节 | 75分钟
随着项目复杂度的增加,不可能每次完成了项目的功能修改,都使用测试软件来对所有的接口进行测试,从本章开始学习借助工具来测试。本章将学习常见的测试分类以及测试的意义,测试环境集成Jest,通过完成用户&鉴权服务的测试,熟悉单元测试书写与调试流程。...

视频:13-1 nestjs测试概述:什么是单元测试?e2e测试? (11:01)
视频:13-2 初识集成测试框架Jest (13:36)
视频:13-3 基础案例:控制器单元测试上手与理解DI底层原理 (13:55)
视频:13-4 单元测试:登录流程signin&signup测试用例 (11:55)
视频:13-5 单元测试:登录流程AuthService测试用例(作业) (23:43)

第14章 nestjs服务端开发:集成测试5 节 | 75分钟
相比于单元测试专注于某个特定的功能,端到端的测试(e2e)主要测试是业务流程的准确性与完整性。本章集成Pectum.js来发起HTTP请求,与生产环境相对应,模拟用户使用我们系统模块的行为,从而来判断我们的接口服务是否正常、系统是否正常。...

视频:14-1 e2e测试入门:搭建e2e测试环境 (18:16)
视频:14-2 自定义AppFactory及脚本:完成数据库初始化与清理 (17:43)
视频:14-3 e2e测试库pactum集成并发起测试请求 (12:30)
视频:14-4 Auth模块e2e测试 (15:31)
视频:14-5 Auth模块e2e测试2 (10:36)

第15章 NestJS 项目部署5 节 | 73分钟
学习项目打包配置与生产环境部署流程,实操Node.js项目的容器化部署方案,学习Dockerfile及容器镜像打包、测试、分发与运行,体会容器化部署的优点。

视频:15-1 服务器安全:前置知识 (15:29)
视频:15-2 打包之前安全配置:CORS&helmet&RateLimit (09:17)
视频:15-3 准备服务器部署环境:Node&Docker (18:54)
视频:15-4 :使用pm2添加守护进程 (17:41)
视频:15-5 项目部署:使用docker进行部署 (10:41)

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。

最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件、阿里云盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或联络我们。

对于会员专享、整站源码、程序插件、网站模板、网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。

如果您已经成功付款但是网站没有弹出成功提示,请联系站长提供付款信息为您处理

源码素材属于虚拟商品,具有可复制性,可传播性,一旦授予,不接受任何形式的退款、换货要求。请您在购买获取之前确认好 是您所需要的资源