Tengo la clase MailEvent y quiero usar el método SendEmail en el proyecto del cliente. Uso el enlace NPM para compartir código para el proyecto del cliente. pero no puedo acceder a este método. ¿Cómo puedo acceder a este método en el proyecto del cliente? estoy usando el marco nestJS. Gracias
@Injectable() export class MailEvent { constructor(private eventEmitter: EventEmitter2) {} // store email details to RabbitMQ SendEmail() { amqplib.connect( 'amqp://localhost', (connectionError, connection) => { if (connectionError) { throw connectionError; } connection.createChannel((channelError, channel) => { if (channelError) { throw channelError; } const queue = 'Test_emails_queue'; channel.assertQueue(queue, { durable: false }); channel.sendToQueue(queue, Buffer.from(JSON.stringify(email))); // create event for sending email this.eventEmitter.emit('send_email', email); }); }, ); }En nestjs podemos crear un módulo reutilizable. Luego, este módulo se puede importar a otro módulo. Si el módulo se almacena en un repositorio separado, entonces podemos construir el módulo primero antes de instalarlo en otro repositorio usando NPM.
Pasos a seguir:
nest g resource mail-event exportar el servicio a través del archivo de módulo mail-event.module.ts
import { Module } from '@nestjs/common'; import { MailEventService } from './mail-event.service'; @Module({ providers: [MailEventService], exports: [MailEventService] }) export class MailEventModule { } Construya el módulo. Creará una nueva carpeta llamada DIST que contiene el módulo listo para ser instalado en otro repositorio/proyecto
npm run buildnpm install mail-eventclient-project.module.ts import { Module } from '@nestjs/common'; import { MailEventModule } from 'mail-event'; @Module({ imports: [MailEventModule] }) export class ClientProjectModule { }client-project.service.ts import { Injectable } from '@nestjs/common'; import { MailEventService } from 'mail-event'; @Injectable() export class ClientProjectService { constructor(private mailEventService: MailEventService) { } myFunction() { this.mailEventService.sendEmail(); } }Si ha intentado estos pasos, envíenos sus comentarios si funciona o no. Gracias