如何解决如何从任何前端应用程序调用nestjs微服务?
我已经制作了一个NestJS微服务包和用于联系微服务的单独的NestJS客户端应用程序。下面给出的是客户端应用程序中使用的代码。在微服务中,使用的方法是@messagePattern,并且可以使用。我的问题是,前端应用程序如何不通过客户端直接与微服务联系,以及如何在微服务中设置招摇或直接从邮递员进行测试?
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文档(https://docs.nestjs.com/microservices/basics)中找到。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。