做張家界旅游網(wǎng)站多少錢全網(wǎng)營(yíng)銷有哪些平臺(tái)
Nest學(xué)習(xí)系列
??一文入門【NestJS】
??一文入門【NestJs】Controllers 控制器
🚩 前言
在NestJS的世界里,理解“Providers”是構(gòu)建健壯、可維護(hù)的后端服務(wù)的關(guān)鍵。NestJS,作為Node.js的一個(gè)現(xiàn)代框架,采用了Angular的一些核心概念,如依賴注入(Dependency Injection,DI),并將其應(yīng)用于服務(wù)器端開(kāi)發(fā)。本文將深入探討NestJS中的Providers機(jī)制,解析其工作原理,以及如何利用它們來(lái)優(yōu)化你的應(yīng)用程序。
🚩什么是 Providers
在NestJS中,Provider是任何可以被DI容器管理和注入的對(duì)象。它可以是一個(gè)類、一個(gè)值、一個(gè)工廠函數(shù)或是抽象接口。Providers的主要作用是提供服務(wù)、值或工廠,這些可以被其他模塊或組件所共享和復(fù)用。
在上片文章中了解到了Nest的Controller,這篇文章介紹到另外一個(gè)重要的知識(shí)點(diǎn)providers;provider可以理解成為Controller提供服務(wù)的部分,也可以稱為service
🚩如何創(chuàng)建一個(gè) service
nest g service news
這是一個(gè)簡(jiǎn)單的service,目前具有兩個(gè)功能一個(gè)是返回所有的新聞列表,一個(gè)是創(chuàng)建一條數(shù)據(jù)
🚩service如何為controller提供服務(wù)
依賴注入
第一步:在controller 種引入對(duì)應(yīng) service,以及對(duì)應(yīng)的接口類型
news.controller.ts
import { NewsService } from './news.service';
import { News } from './interfaces/news.interface';
第二步:通過(guò)constructor(private newsService: NewsService) {}注入
@Controller('news')
export class NewsController {constructor(private newsService: NewsService) {}.....
}
第三步:在對(duì)應(yīng)的請(qǐng)求裝飾器中使用
@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,'添加參數(shù)');return this.newsService.createNews(createNewsDto);}
}
第四步:在app.module 中注冊(cè)
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 {}
結(jié)語(yǔ)
掌握NestJS中的Providers,意味著你能夠更好地構(gòu)建模塊化、可擴(kuò)展的后端服務(wù)。通過(guò)合理的使用Providers,你可以輕松地管理依賴關(guān)系,提高代碼的可讀性和可維護(hù)性。無(wú)論是構(gòu)建復(fù)雜的微服務(wù)架構(gòu),還是簡(jiǎn)單的API服務(wù),NestJS的DI機(jī)制都將是你不可或缺的工具。