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

那些论坛网站做的比较好专业APP客户端做网站

那些论坛网站做的比较好,专业APP客户端做网站,wordpress该连接后不显示,男女生做羞羞事情的网站🧩 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/448093.html

相关文章:

  • 用阿里云怎么建网站网站后台上传图片步骤
  • 蚁百杭州网站seo优化如何知道网站开发语言
  • 金华高端网站建设wordpress简洁风模板
  • 有祥云网站建设学校网站前的需求分析报告
  • 深圳建站网站电子商务前景如何
  • 合肥专业建站做卖车网站需要什么手续费
  • 网站域名备案证书wordpress修改阅读
  • 自己做的网站还要买域名么企业宣传片摄制
  • 吉林市做网站深圳 网站设计公司
  • 为什么用wp做网站腾讯云企业邮箱注册
  • 云南旅游网站建设wap网站搭建
  • 家具网站建设需求松江品划网站建设开发
  • 网站开发语言是什么意思广州网络安全建设公司
  • 江苏省建设厅网站建造师强制注销八亿免费wap自助建站
  • 高端网站制作局域网网站制作
  • 邳州建设局网站余姚市建设协会网站
  • 百度站内搜索 wordpress公司宣传网站建设开题报告
  • 江门网站设计找哪家做书评的网站
  • 营销型网站的类型有哪些网站外包如何报价
  • wap网站开发价格django 网站开发实例
  • 海珠区有没有专门做网站的地方建设招标网 手机官方网站
  • 建设互联网教育网站最近三天的新闻大事小学生
  • 网站建设属于什么费ae做动画教程网站
  • 深圳建设项目环保网站办事指南做海产品的外贸网站
  • 如何快速提升网站流量wordpress搜索框变码
  • 个人网站推荐陕西西安网站建设公司排名
  • 网站建设方案书 模板ppt模板下载的网站有哪些
  • 用照片做视频的网站好软件开发培训学费
  • 网站建设工资多少湖北专业网站建设维修电话
  • 怎样黑进别人的网站网页设计尺寸1440