亚洲精品中文免费|亚洲日韩中文字幕制服|久久精品亚洲免费|一本之道久久免费

      
      

            <dl id="hur0q"><div id="hur0q"></div></dl>

                使用 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

                相關推薦

                • 短視頻策劃內容的3個要點(短視頻策劃內容怎么做)

                  短視頻在制作時,內容框架非常重要。如果直奔主題,然后結束,聚卓告訴你,這樣的短視頻已經過時了?,F(xiàn)在的短視頻需要框架的,但不是任何框架,它需要一種易于理解和消化的框架。而且,現(xiàn)在大多…

                  2022年11月27日
                • 世界杯海外直播在哪看(中國女籃世界杯直播)

                  最近一段時間最火爆的話題就是世界杯了,大家都想第一時間觀看直播比賽,一些海外小伙伴在問世界杯海外直播在哪看?2022年世界杯海外直播免費觀看平臺有哪些?下面小編為大家?guī)硎澜绫M狻?/p>

                  2022年11月25日
                • 科比19歲女兒遭自稱與她生“科比式孩子”男子跟蹤騷擾

                  極目新聞記者王亮亮黃佳琪 據??怂剐侣劸W報道,當地時間11月21日,已故籃球巨星科比·布萊恩特的長女娜塔莉亞·布萊恩特21日向法院提交臨時限制令,聲稱這位32歲的前科從十幾歲起就騷…

                  2022年11月24日
                • 免費清理c盤的軟件(清理c盤空間不影響系統(tǒng))

                  電腦用久了慢如龜速,還卡頓,這最大的原因啊就是C盤空間不足造成的。 即使電腦配置再好,或者硬盤再快,如果長時間沒有打掃C盤,打開文件或者穩(wěn)定之類的,都卡得讓人頭大。 這時候呢不要去…

                  2022年11月24日
                • 園屬于什么結構(園的結構和部首)

                  園 yuán:全包圍結構,平穩(wěn)端正中稍帶左收右展。 外部“口” 體態(tài)端莊,稍抗肩,稍帶左輕右重。左豎起筆稍抖,豎身勿重,稍左斜,垂露收筆;第二筆橫折壓著左豎起筆,橫畫稍抗肩,不要重…

                  2022年11月24日
                • pdf虛擬打印機(添加pdf虛擬打印機)

                  本文主要講的是pdf虛擬打印機,以及和添加pdf虛擬打印機相關的知識,如果覺得本文對您有所幫助,不要忘了將本文分享給朋友。 pdf虛擬打印機具體是什么功能? 電腦虛擬打印機的功能有…

                  2022年11月24日
                • 卡塔爾世界杯吉祥物中文叫什么名字(卡塔爾世界杯吉祥物動畫)

                  2022年卡塔爾世界杯的話題熱度超級火爆的,其中本屆世界杯中的吉祥物也受到了很多網友們的喜愛,大家也都在準備入手一只。那么,卡塔爾世界杯吉祥物中文叫什么名字?大家稱之為“餃子皮”的…

                  2022年11月23日
                • 大疆發(fā)布DJI O3 Air Unit圖傳解決方案 售價1499元

                  大疆日前發(fā)布了最新的DJI O3 Air Unit 數字圖傳解決方案,該方案將DJI O3+ 圖傳與1/1.7 英寸影像傳感器相機模塊集于一身,具有高畫質、低延時、遠距離等特點。 …

                  2022年11月23日
                • QQ發(fā)布6.8.8.6517測試版 新增GIF表情Tab

                  騰訊 QQ 現(xiàn)已面向 macOS 用戶發(fā)布了 6.8.8.6517 測試版更新,帶來了新功能、體驗優(yōu)化和 Bug 修復。 新功能方面,測試版中,QQ 支持記憶消息輸入區(qū)大小和群成員…

                  2022年11月22日
                • ftp端口號(ftp端口號可以自定義嗎)

                  FTP端口號是21在FTP服務器中,我們往往會給不同的部門或者某個特定的用戶設置一個帳戶但是,這個賬戶有個特點,就是其只能夠訪問自己的主目錄服務器通過這種方式來保障FTP服務上其他…

                  2022年11月21日

                聯(lián)系我們

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