/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()
构造函数的选项列表
有疑问加站长微信联系(非本文作者)