亚洲国产日韩人妖另类,久久只有这里有精品热久久,依依成人精品视频在线观看,免费国产午夜视频在线

      
      

        使用 Dapr JS SDK 讓 Nest.js 集成 Dapr

        Dapr 是一個可移植的、事件驅動的運行時,它使任何開發(fā)人員能夠輕松構建出彈性的、無狀態(tài)和有狀態(tài)的應用程序,并可運行在云平臺或邊緣計算中,它同時也支持多種編程語言和開發(fā)框架

        Dapr 中文手冊:https://docs.dapr.io/zh-hans/

        文件結構

        Dapr JS SDK

        • https://github.com/dapr/js-sdk

        創(chuàng)建包含我們的 NestJS 項目的文件結構:

        src/ main.ts app.module.ts config/config.ts dapr/ dapr.module.ts dapr.service.ts

        創(chuàng)建 Nest Dapr 模塊

        創(chuàng)建文件結構后,我們可以配置我們的模塊并使其可用于 NestJS

        src/dapr/dapr.module.ts

        import { Module } from “@nestjs/common”;import { ConfigModule } from “@nestjs/config”;import { DaprService } from “./dapr.service”;@Module({ imports: [ ConfigModule ], controllers: [ ], providers: [ DaprService ], exports: [ DaprService ]})export class DaprModule {}

        上面的代碼將利用 Config 模塊(我們稍后將使用它來將配置注入我們的服務)以及我們將創(chuàng)建的包含 Dapr JS SDK 方法的 Dapr 服務。

        最后,在 app.module.ts 文件中注冊這個模塊:

        import { Module } from ‘@nestjs/common’;import { ConfigModule } from ‘@nestjs/config’;import configuration from ‘../config/config’;import { DaprModule } from ‘./dapr/dapr.module’;@Module({ imports: [ ConfigModule.forRoot({ load: [configuration], }), DaprModule ], controllers: [], providers: [],})export class AppModule;

        src/dapr/dapr.service.ts

        現(xiàn)在我們已經注冊了我們的模塊,讓我們創(chuàng)建幫助我們訪問 Dapr JS SDK 的服務類:

        import { Injectable, Logger } from ‘@nestjs/common’;import { ConfigService } from ‘@nestjs/config’;import { DaprClient } from ‘dapr-client’;@Injectable()export class DaprService { daprClient: DaprClient; private readonly logger = new Logger(DaprService.name); constructor( private readonly configService: ConfigService ) { const daprHost = this.configService.get(‘third_party.dapr.host’); const daprPort = this.configService.get(‘third_party.dapr.port’); this.logger.log(`Initializing DaprClient(“${daprHost}”, ${daprPort})`); this.daprClient = new DaprClient(daprHost, daprPort); }}

        如您所見,我們在此處訪問 third_party.dapr.host 和 third_party.dapr.port,它們從 config/config.ts 文件中提取信息。所以繼續(xù)使用以下配置:

        export default () => ({ third_party: { dapr: { host: process.env.DAPR_SIDECAR_HOST || ‘127.0.0.1’, port: process.env.DAPR_SIDECAR_PORT || ‘3500’, } },});

        使用 Nest 模塊

        現(xiàn)在我們創(chuàng)建了我們的模塊,我們可以將它導入到我們的任何 Nest 模塊中(在 imports: [ DaprModule ]下載添加它)并開始使用它。

        import { Controller, Get, HttpCode, Req, Logger } from ‘@nestjs/common’;import { ApiTags } from ‘@nestjs/swagger’;import { DaprService } from ‘../dapr/dapr.service’;@Controller(‘demo’)@ApiTags(‘demo’)export class DemoController { private readonly logger = new Logger(DemoController.name); constructor( private readonly daprService: DaprService, ) { } @Get(‘/’) @HttpCode(200) async demo(@Req() req): Promise { await this.daprService.daprClient.binding.send(`my-component`, “create”, { hello: “world” }); }

        使用 Dapr 啟動 Nest

        為了開始這一切,我們現(xiàn)在可以使用 dapr run 命令,它會在其中創(chuàng)建包含 Dapr 的進程。

        dapr run –app-id my-application –app-protocol http –app-port 50001 –dapr-http-port 3500 –components-path ./components npm run start

        鄭重聲明:本文內容及圖片均整理自互聯(lián)網,不代表本站立場,版權歸原作者所有,如有侵權請聯(lián)系管理員(admin#wlmqw.com)刪除。
        上一篇 2022年6月20日 09:10
        下一篇 2022年6月20日 09:10

        相關推薦

        聯(lián)系我們

        聯(lián)系郵箱:admin#wlmqw.com
        工作時間:周一至周五,10:30-18:30,節(jié)假日休息