一文入门【NestJs】Modules

🚩引言

在探索NestJS的生态系统时,理解模块(Modules)的概念是至关重要的第一步。NestJS,作为一个基于Node.js的现代框架,借鉴了Angular的模块化设计思路,为开发者提供了一种优雅的方式来组织和管理代码。本文将带你深入了解NestJS的模块系统,揭示其如何帮助你构建结构清晰、易于维护的应用程序。

🚩什么是 Modules?

在NestJS中,模块是应用的基本构建单元,用于封装一组相关的特性、服务、控制器和中间件。模块不仅有助于组织代码,还提供了依赖注入的上下文,使得代码更加模块化和可重用。

🚩装饰器

@Module()装饰器采用单个对象

在这里插入图片描述

🚩Module创建

要使用 CLI 创建模块,只需执行以下命令即可。

$ nest g module cats

创建一个模块非常简单,只需使用@Module装饰器,并指定模块的元数据。下面是一个基础的模块定义示例:
在这里插入图片描述
在根目录种引入对应模块
在这里插入图片描述
在这里插入图片描述

🚩Module优点

这样我们基本news模块基础的项目结构,就搭建成形,后期我们如果有很多模块基本就可以按照这种模式开发,每个模块都是相互独立,后期便于我们项目的维护,我们可以将功能的模块抽离出来做成共享模块,供其他模块调用,下面我们就了解一下如何抽离出一个共享模块。

🚩共享Module

在 Nest 中,默认情况下模块是单例,因此你可以轻松地在多个模块之间共享任何提供程序的同一实例
在这里插入图片描述
以news模块为例,假如我们的NewsService是一个共享的实例,我们只需要将NewsService放到 exports数组中,这样任意一个导入NewsModule的模块都可以访问NewsService,并与导入他的模块共享同一实例
在这里插入图片描述

🚩模块间的关系

NestJS模块之间可以形成树状结构,一个模块可以导入另一个模块,从而继承其提供的服务和控制器。这种层次化的模块设计允许你构建复杂的应用程序,同时保持代码的清晰和整洁。
在这里插入图片描述

🚩模块重新导出

通过imports 和 exports,模块可以导出其内部提供程序。此外,他们可以重新导出他们导入的模块

完整示例代码:

news.module.ts

import { Module } from '@nestjs/common';
import { NewsController } from './news.controller';
import { NewsService } from './news.service';
@Module({
    controllers: [NewsController],
    providers: [NewsService],
    exports: [NewsService],
})
export class NewsModule {}

根模块

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { NewsModule } from './news/news.module'; //新闻模块

@Module({
  imports: [NewsModule],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

🚩结语

NestJS的模块系统为构建高性能、可维护的后端服务提供了一个坚实的基础。通过合理地规划和使用模块,你可以将应用分解成更小的、可管理的部分,提高代码的可读性和可测试性。无论你是初学者还是经验丰富的开发者,理解NestJS的模块机制都是提升项目质量的关键一步

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然,我很乐意帮助您入门Docker!Docker是一个开源的容器化平台,它可以帮助您打包、发布和运行应用程序。以下是一些关键概念和步骤来帮助您入门Docker: 1. 安装Docker:首先,您需要在您的机器上安装Docker。Docker提供了适用于不同操作系统(如Windows、Mac和Linux)的安装程序。您可以在Docker官方网站上找到相应的安装指南。 2. Docker镜像:Docker镜像是一个轻量级的独立软件包,其中包含了运行应用程序所需的所有内容(包括代码、运行时环境、库和依赖项等)。您可以通过构建自己的镜像或者从Docker Hub等镜像仓库中获取现有的镜像。 3. Docker容器:Docker容器是从Docker镜像创建的运行实例。容器可以独立运行,并且具有自己的件系统、网络和进程空间。您可以使用Docker命令来创建、启动、停止和删除容器。 4. Dockerfile:Dockerfile是一个件,其中包含了一系列的指令,用于构建Docker镜像。通过编写Dockerfile,您可以定义应用程序的所需环境、依赖项和配置等信息,并将其打包到镜像中。 5. Docker Compose:Docker Compose是一个用于定义和运行多个Docker容器的工具。通过编写一个YAML格式的配置件,您可以定义多个服务(每个服务对应一个容器),并指定它们之间的关联和依赖关系。 以上是Docker的一些基本概念和步骤,希望对您入门Docker有所帮助。如果您有更具体的问题或者需要进一步了解,请随时提问!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值