【问题标题】:How to call nestjs microservice from any frontend app?如何从任何前端应用程序调用nestjs 微服务?
【发布时间】:2021-02-24 07:44:15
【问题描述】:

我制作了一个 NestJS 微服务包和单独的 NestJS 客户端应用程序,用于联系微服务。下面给出的是客户端应用程序中使用的代码。在微服务中,使用的方法是@messagePattern,它是功能性的。我的问题是前端应用程序如何在不通过客户端的情况下直接与微服务联系,以及如何在微服务中设置 swagger 或直接从邮递员那里进行测试?

import { BadRequestException, Injectable, UnauthorizedException } from '@nestjs/common';
import { ClientProxy, ClientProxyFactory, Transport } from '@nestjs/microservices';
import { errorResponse, goodResponse } from 'src/helpers/response.helper';
import { AddContractDTO } from './contract.dto';

@Injectable()

export class ContractService {
    private client: ClientProxy; 

    constructor() {
        this.client = ClientProxyFactory.create({
          transport: Transport.TCP,
          options: {
            host: '127.0.0.1',
            port: 3011,
          },
        });
      }

    public async addContract(data: AddContractDTO) {
            const res = await this.client.send<any,any>('contract/addContract', data).toPromise();
            console.log(res);
            if(!res.success){
              throw new BadRequestException(res)
            }
            return goodResponse(res.data.data,'Contract created');

    }
}

【问题讨论】:

    标签: javascript node.js swagger nestjs nestjs-swagger


    【解决方案1】:

    您不能直接调用该服务。您需要创建一个控制器(以绑定到端点),然后才能调用该服务。

    可以在 NestJS 文档 (https://docs.nestjs.com/microservices/basics) 中找到示例。

    【讨论】:

      猜你喜欢
      • 2021-12-05
      • 2019-09-20
      • 1970-01-01
      • 2019-10-10
      • 2019-06-14
      • 2019-02-01
      • 2020-03-02
      • 1970-01-01
      • 2019-02-04
      相关资源
      最近更新 更多