ecom-rabbitmq
v1.1.9
Published
A comprehensive RabbitMQ module for NestJS applications, providing easy integration with RabbitMQ for microservices communication.
Readme
NestJS RabbitMQ Module
A comprehensive RabbitMQ module for NestJS applications, providing easy integration with RabbitMQ for microservices communication.
Installation
npm install ecom-rabbitmqConfiguration
Before using the module, make sure to set the RABBITMQ_URL environment variable with your RabbitMQ server URLs. You can set this in your .env file:
RABBITMQ_URL=amqp://localhost:5672Usage
Importing the Module
To use the RabbitMQ module in your NestJS application, import it in your app module:
import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import { RabbitMQModule } from 'ecom-rabbitmq';
import { AppController } from './app.controller';
import { AppService } from './app.service';
@Module({
imports: [
ConfigModule.forRoot(),
RabbitMqClientModule.registerQueues({
imports: [ConfigModule],
queues: ['ABC_QUEUE', 'EFG_QUEUE', 'HIJ_QUEUE'],
}),
],
controllers: [AppController],
providers: [AppService],
})
export class MyModule {}Initialize the QUEUE to listen to
main.ts
const rmqConfigs = RabbitMqClientModule.initRmq(
configService,
PC_MS_QUEUES.name,
);
app.connectMicroservice<RmqOptions>(rmqConfigs);
await app.startAllMicroservices();API Reference
RabbitMQModule
forRootAsync(options: IRabbitMQModuleAsyncOptions): DynamicModuleCreates a global asynchronous RabbitMQ module.
MyService
@Injectable()
export class MyService {
constructor(@Inject('ABC_QUEUE') private readonly txnClient: ClientProxy) {}
sendMessage() {
this.txnClient.emit('PATTERN_QUEUE', {
message: 'Hello World!',
});
}
}