当前位置: 首页 > news >正文

那些论坛网站做的比较好做网站的手机软件

那些论坛网站做的比较好,做网站的手机软件,贵阳网站建设蜜蜂,十大搜索引擎排行榜🧩 NestJS 系列教程(二):模块化架构与依赖注入机制详解 ✨ 本篇目标 在本章你将学会: Nest 中模块(Module)的作用与使用方法如何组织多个模块Nest 的依赖注入机制是如何工作的如何注册并使用…

🧩 NestJS 系列教程(二):模块化架构与依赖注入机制详解

✨ 本篇目标

在本章你将学会:

  • Nest 中模块(Module)的作用与使用方法
  • 如何组织多个模块
  • Nest 的依赖注入机制是如何工作的
  • 如何注册并使用自定义服务

📦 什么是模块(Module)?

在 Nest 中,模块是组织代码的基本单元。每个功能领域应被封装在自己的模块中。

官方建议:每个模块都应该聚焦于一类职责或功能领域,如:用户模块、商品模块、订单模块等。

模块的核心结构:

@Module({imports: [],controllers: [],providers: [],exports: [],
})
export class XxxModule {}

🎯 创建一个新的模块与服务

我们通过 CLI 创建一个 cats 模块:

nest g module cats
nest g service cats
nest g controller cats

生成的结构:

src/
├── cats/
│   ├── cats.module.ts
│   ├── cats.service.ts
│   ├── cats.controller.ts

🧱 cats.module.ts

import { Module } from '@nestjs/common';
import { CatsController } from './cats.controller';
import { CatsService } from './cats.service';@Module({controllers: [CatsController],providers: [CatsService],
})
export class CatsModule {}
  • controllers:声明控制器
  • providers:声明服务,供控制器或其他服务注入使用

🧠 cats.service.ts

import { Injectable } from '@nestjs/common';@Injectable()
export class CatsService {getCats(): string[] {return ['Tom', 'Garfield', 'Kitty'];}
}
  • @Injectable():标记此类可以被依赖注入
  • 逻辑简单,返回一组猫猫的名字

🌐 cats.controller.ts

import { Controller, Get } from '@nestjs/common';
import { CatsService } from './cats.service';@Controller('cats')
export class CatsController {constructor(private readonly catsService: CatsService) {}@Get()findAll(): string[] {return this.catsService.getCats();}
}
  • 使用 @Controller('cats') 来定义路由前缀 /cats
  • 在构造函数中注入 CatsService(Nest 自动完成注入)
  • @Get() 表示响应 GET /cats 请求

🔗 根模块中引入 CatsModule

app.module.ts 中添加:

import { Module } from '@nestjs/common';
import { CatsModule } from './cats/cats.module';@Module({imports: [CatsModule],
})
export class AppModule {}

🧪 测试结果

运行项目:

npm run start

访问浏览器:

http://localhost:3000/cats

响应结果:

["Tom", "Garfield", "Kitty"]

🧠 依赖注入(DI)原理概览

Nest 的依赖注入容器自动处理类之间的依赖关系。

当你通过构造函数注入一个服务时,如下:

constructor(private readonly catsService: CatsService) {}

Nest 会:

  1. 检查 CatsService 是否已经在 providers 中注册;
  2. 自动创建并注入实例;
  3. 管理生命周期(默认是单例)。

这使得你的代码松耦合、高可测试性。


🚀 延伸:跨模块注入服务(使用 exports)

如果你希望在其他模块中使用 CatsService,你需要:

修改 cats.module.ts

@Module({controllers: [CatsController],providers: [CatsService],exports: [CatsService], // 👈 导出服务
})

在另一个模块中引入 CatsModule

import { Module } from '@nestjs/common';
import { CatsModule } from './cats/cats.module';@Module({imports: [CatsModule], // 👈 导入模块
})
export class DogsModule {}

这样你就可以在 DogsModule 中注入 CatsService 了。


✅ 小结

本篇我们学习了:

  • Nest 模块系统的结构与作用
  • 如何使用 CLI 快速创建模块、控制器、服务
  • 服务注册与依赖注入机制
  • 跨模块共享服务的方法

🔮 下一篇预告

第3篇:构建 RESTful API —— 路由、DTO 与请求处理

我们将构建带有参数校验的 POST 接口,介绍 DTO(数据传输对象)、管道(Pipes)和请求参数装饰器的用法。

http://www.dtcms.com/a/498049.html

相关文章:

  • 内含各种专业的网站搭建模板北京赛车网站开发多少钱
  • 广州外贸网站建设推广淘客联盟推广平台
  • 网站建设发展历程ppt拼多多找货源哪里找
  • 安徽建筑工程网站国外扁平化网站
  • 网站附件下载表格怎么做拓者设计吧室内设计官网登录
  • 建站公司属于什么类型网站建立需要多少钱
  • 在网站开发中进行用户管理私域流量运营管理
  • 网站开发 男生整合网络营销
  • 个人网站能干嘛广东省建设项目安全标准自评网站
  • 毕业设计做 做交易网站温岭网站建设
  • wordpress关闭多站点洛可可在线设计平台
  • 网络营销教程移动网站优化
  • 网站建设调查通知17zwd一起做网站广州新塘
  • 广州从化网站建设网站建站平台广告
  • 监控摄像头做斗鱼直播网站一级域名做网站的好处
  • 中国建设银行积分网站域名注册查询官网
  • 成都的教育品牌网站建设wordpress调用支付宝
  • 网站开发4k分辨率上杭网页制作
  • 建设一个电子文学网站资金多少搜索wordpress
  • 学做美食饮品网站企业文化宣传册模板
  • 制作网站的公司叫什么猫咪社区免费资源在线观看
  • 广州移动端网站建设二级建造师报考条件官网
  • 郑州网站建设鹏之信海口网站建设小强
  • 四川建设人才官方网站dz可以做门户网站吗
  • 简述企业网站维护的重要性鹤壁市住房和城乡建设局网站
  • 大数据技术建设网站汽车4s销售网站模板
  • 个人博客html代码长沙seo优化方案
  • 安徽省住建厅网站官网广东网站开发项目
  • 深圳led网站建设休闲会所网站建设
  • 安徽省建设工程网站平面设计图片大全