A comprehensive RabbitMQ module for NestJS applications, providing easy integration with RabbitMQ for microservices communication.
npm install ecom-rabbitmq
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:5672
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 {}
main.ts
const rmqConfigs = RabbitMqClientModule.initRmq(
configService,
PC_MS_QUEUES.name,
);
app.connectMicroservice<RmqOptions>(rmqConfigs);
await app.startAllMicroservices();
-
forRootAsync(options: IRabbitMQModuleAsyncOptions): DynamicModule
Creates a global asynchronous RabbitMQ module.
@Injectable()
export class MyService {
constructor(@Inject('ABC_QUEUE') private readonly txnClient: ClientProxy) {}
sendMessage() {
this.txnClient.emit('PATTERN_QUEUE', {
message: 'Hello World!',
});
}
}