[完结36章]NestJS从拔高到精通,大型复杂业务架构落地实践

okkaandw · · 51 次点击 · 开始浏览    置顶

/s/18O99OreS6DeeTjtVMqvP_Q 提取码:2167 一、什么是 NestJS 简单来说 NestJS 就是一个 NodeJS 服务端框架,它完全支持 TypeScript,并且有自己一套架构模式,开发者需要按照 NestJS 要求的架构来组织代码,而这套架构思想接近于传统后端的开发框架,所以作为一个完全的前端开发者理解起来相对来说会有些出入。下面是官网的介绍 Nest (NestJS) 是一个用于构建高效、可扩展的 Node.js 服务器端应用程序的开发框架。它利用 JavaScript 的渐进增强的能力,使用并完全支持 TypeScript (仍然允许开发者使用纯 JavaScript 进行开发),并结合了 OOP (面向对象编程)、FP (函数式编程)和 FRP (函数响应式编程)。在底层,Nest 构建在强大的 HTTP 服务器框架上,例如 Express (默认),并且还可以通过配置从而使用 Fastify ! 二、Nest.js 的定位和应用领域 NestJS是目前Node平台上最受欢迎的企业级开发框架之一,其提供了IOC、AOP、微服务等架构特性。通常情况下,Node应用的开发可以分为三个层次: 直接使用http、https包的createServer API 使用像express、koa这样的请求响应处理库, 使用像nest、egg、midway这样的企业级框架。 三、NestJS 简介:为什么选择它? NestJS 基于 TypeScript 构建,结合了面向对象编程、函数式编程和响应式编程的优点,提供了一套强大且灵活的工具集,适用于各类应用开发。其特性包括: 模块化架构:将功能分解成可复用的模块,方便开发与维护。 依赖注入:通过 IOC(控制反转)减少模块间的耦合。 支持多种传输协议:不仅支持 HTTP,还支持 WebSocket、gRPC 等协议。 强大的生态系统:提供丰富的内置功能,如认证模块、日志模块等。 四、NestJS 核心概念与架构 在使用 NestJS 时,需要了解以下核心概念: 模块(Module):功能分组的基本单位,用于组织代码。 控制器(Controller):处理请求并返回响应。 服务(Service):包含业务逻辑的核心层。 提供者(Provider):被 NestJS 容器管理的类,通过依赖注入使用。 中间件(Middleware):处理请求或响应的预处理逻辑。 五、初始化 NestJS 应用程序 启动 Nest 项目很简单,因为 Nest 提供了一个可用于生成新项目的 CLI。如果你安装了 npm,你可以使用以下命令创建一个新的 Nest 项目: npm i -g @nestjs/cli nest new project-name Nest 将使用 project-name 并添加样板文件创建一个项目目录 在后台,Nest 公开了一个 GraphQL 模块,该模块可以配置为在 Nest 应用程序中使用 Apollo GraphQL 服务器。要将 GraphQL API 添加到我们的 Nest 项目中,我们需要安装 Apollo Server 和其他 GraphQL 依赖项: $ npm i --save @nestjs/graphql graphql-tools graphql apollo-server-express 安装依赖项后,您现在可以导入 GraphQLModule AppModule 到 : // src/app.module.ts import { Module } from '@nestjs/common'; import { GraphQLModule } from '@nestjs/graphql'; @Module({ imports: [ GraphQLModule.forRoot({}), ], }) export class AppModule {} GraphQLModule 是 Apollo Server 上的包装器。它提供了一个静态方法 , forRoot() 用于配置底层 Apollo 实例。该方法 forRoot() 接受传递到 ApolloServer() 构造函数的选项列表

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

51 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传