Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从任何前端应用程序调用nestjs microservice?_Javascript_Node.js_Swagger_Nestjs_Nestjs Swagger - Fatal编程技术网

Javascript 如何从任何前端应用程序调用nestjs microservice?

Javascript 如何从任何前端应用程序调用nestjs microservice?,javascript,node.js,swagger,nestjs,nestjs-swagger,Javascript,Node.js,Swagger,Nestjs,Nestjs Swagger,我制作了一个NestJS微服务包和单独的NestJS客户端应用程序,用于联系微服务。下面给出了客户端应用程序中使用的代码。在microservice中,使用的方法是@messagePattern,它是功能性的。我的问题是,前端应用程序如何在不经过客户端的情况下直接与微服务联系,以及如何在微服务中设置swagger或直接从邮递员处测试它 import { BadRequestException, Injectable, UnauthorizedException } from '@nestjs/c

我制作了一个NestJS微服务包和单独的NestJS客户端应用程序,用于联系微服务。下面给出了客户端应用程序中使用的代码。在microservice中,使用的方法是@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');

    }
}
从'@nestjs/common'导入{BadRequestException,可注入的,未授权的dexception};
从'@nestjs/microservices'导入{ClientProxy,ClientProxyFactory,Transport};
从'src/helpers/response.helper'导入{errorResponse,goodResponse};
从“./contract.dto”导入{AddContractDTO};
@可注射()
出口类合同服务{
私有客户端:ClientProxy;
构造函数(){
this.client=ClientProxyFactory.create({
传输:transport.TCP,
选项:{
主持人:“127.0.0.1”,
港口:3011,
},
});
}
公共异步addContract(数据:AddContractDTO){
const res=wait this.client.send('contract/addContract',data.toPromise();
控制台日志(res);
如果(!res.success){
抛出新的BadRequestException(res)
}
返回goodResponse(res.data.data,'Contract created');
}
}

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


示例可以在NestJS文档()中找到。

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

示例可以在NestJS文档()中找到