Nest (NestJS)是一个开发框架,用于构建高效且可伸缩的Node.js服务器端应用程序。它利用了JavaScript的逐渐增强,使用并完全支持TypeScript(仍然允许开发者使用纯JavaScript进行开发),结合了OOP(面向对象编程)、FP(函数式编程)和FRP(函数式响应编程)。
在底层,Nest构建在一个强大的HTTP服务器框架上,比如Express(默认),也可以配置成使用Fastify!
Nest在这些常见的Node.js框架(Express/Fastify)上提高了一个抽象级别,但它仍然直接向开发人员公开了底层框架的API。这使得开发者可以自由使用无数适合底层平台的第三方模块。
哲学 近年来,Node.js和JavaScript已经成为web前端和后端应用的“通用开发语言”。这导致了Angular、React、Vue等优秀项目的出现,这些项目提高了开发者的生产力,可以创建快速、可测试、可扩展的前端应用。然而,尽管Node(以及服务器端JavaScript)拥有大量优秀的软件库、辅助程序和工具,但它们都无法有效解决我们面临的主要问题,即架构。
Nest提供了开箱即用的应用程序架构,允许开发人员及其团队创建高度可测试、可扩展、松散耦合且易于维护的应用程序。这个建筑的灵感来自于棱角分明的。
固定 在开始之前,您可以使用Nest CLI创建一个项目或克隆一个启动项目(两种结果是相同的)。
若要使用Nest CLI构建项目,请运行以下命令。这将创建一个新的项目目录,并用核心嵌套文件和支持模块填充它,从而为项目创建一个传统的基本结构。建议初学者使用Nest CLI创建新项目。我们将在第一章中继续采用这种方法。
近几年快速发展的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章 快速搭建nestjs开发环境
掌握服务端开发的基本流程,完成本地开发环境搭建,配置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章 nestjs服务端开发:通用业务框架设计【配置】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章 nestjs服务端开发:通用业务框架设计【数据库】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)
下载链接见右侧按钮
声明:1、学神资源吧资源均通过互联网公开合法渠道获取,资源价格仅代表资源收集整理的费用,绝不代表原作品本身的价值。资源仅供阅读测试,请在下载后24小时内删除,谢谢合作!2、由于部分资源中不可避免的存在一些敏感关键词,如果购买后提示网盘资源链接失效,或者提示此类资源无法分享的情况,您无需担心,只需要联客服联系为您补发资源即可。
3、版权归原作者或出版方所有,本站不对涉及的版权问题负法律责任。若版权方认为学神资源吧侵权,请联系客服或发送邮件处理。。。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理,微信: xueshen2025。