• 一文入门【NestJs】Providers


    Nest学习系列

    ✈️一文入门【NestJS】
    ✈️一文入门【NestJs】Controllers 控制器

    🚩 前言

    NestJS的世界里,理解“Providers”是构建健壮、可维护的后端服务的关键。NestJS,作为Node.js的一个现代框架,采用了Angular的一些核心概念,如依赖注入(Dependency Injection,DI),并将其应用于服务器端开发。本文将深入探讨NestJS中的Providers机制,解析其工作原理,以及如何利用它们来优化你的应用程序。

    🚩什么是 Providers

    在NestJS中,Provider是任何可以被DI容器管理和注入的对象。它可以是一个类、一个值、一个工厂函数或是抽象接口。Providers的主要作用是提供服务、值或工厂,这些可以被其他模块或组件所共享和复用。

    在上片文章中了解到了Nest的Controller,这篇文章介绍到另外一个重要的知识点providers;provider可以理解成为Controller提供服务的部分,也可以称为service

    🚩如何创建一个 service

    nest g service news

    这是一个简单的service,目前具有两个功能一个是返回所有的新闻列表,一个是创建一条数据
    在这里插入图片描述
    在这里插入图片描述

    🚩service如何为controller提供服务

    依赖注入

    第一步:在controller 种引入对应 service,以及对应的接口类型

    news.controller.ts

    import { NewsService } from './news.service';
    import { News } from './interfaces/news.interface';
    

    第二步:通过constructor(private newsService: NewsService) {}注入

    @Controller('news')
    export class NewsController {
    	constructor(private  newsService: NewsService) {}
    	.....
    }
    

    第三步:在对应的请求装饰器中使用

    @Controller('news')
    export class NewsController {
    	constructor(private  newsService: NewsService) {}
     	@Get('/page')
    	async getNewsPageList(@Query() query: string): Promise<News[]> {
            console.log(query);
            return this.newsService.getNewsPageList();
        }
    
       @Post('/create')
       async  createNews(@Body() createNewsDto: CreateNewsDto) {
            console.log(createNewsDto,'添加参数');
            return this.newsService.createNews(createNewsDto);
        }
    }
    

    第四步:在app.module 中注册

    import { Module } from '@nestjs/common';
    import { AppController } from './app.controller';
    import { AppService } from './app.service';
    import { NewsController } from './news/news.controller';
    import { NewsService } from './news/news.service';
    
    @Module({
      imports: [],
      controllers: [AppController, NewsController],
      providers: [AppService,NewsService],
    })
    export class AppModule {}
    

    结语

    掌握NestJS中的Providers,意味着你能够更好地构建模块化、可扩展的后端服务。通过合理的使用Providers,你可以轻松地管理依赖关系,提高代码的可读性和可维护性。无论是构建复杂的微服务架构,还是简单的API服务,NestJS的DI机制都将是你不可或缺的工具。

  • 相关阅读:
    Java前后端交互的一些细节
    综述:大规模小目标检测
    C++20中的Feature Test Mocros
    设计模式总结
    使用Unity旧版本使用hotReload在开始的时候提示 PlayerSettings.suppressCommonWarnings; 找不到
    SpringBoot2 +vue2 + shiro 集成山东通 auth2 方式单点登陆
    在建工程预转固后 预转固卡片一次性计提了折旧 后续月份又发生了价值调减的情况
    CSS3专题-[上篇]:过渡、2D转换、动画
    Java 在Word文档中添加艺术字
    JavaWeb-深度解析转发和重定向
  • 原文地址:https://blog.csdn.net/weixin_43742274/article/details/140333681