relay-rabbitmq

This package makes it easy for you to send a message on rabbitMQ and provide a callback for a response.

Usage no npm install needed!

<script type="module">
  import relayRabbitmq from 'https://cdn.skypack.dev/relay-rabbitmq';
</script>

README

Introduction

This is a package that makes it easy for you to queue a message on rabbitMQ and provide a callback for a response in your node.js app.

Example


const UsersController = {
    create: async (req, res) => {
        try {
           
            // define required parameters
            const reqMsg = req.body;
            const url = 'amqp://localhost';
            const resQueueName = 'resQueuee';
            const reqQueueName = 'reqQueuee';
            const options = { exclusive: true };

            const mqConnection = await Queue(url);
            const res = await Queue.relay(reqMsg, reqQueueName, resQueueName, options)

            return res.status(201).send({
                success: true,
                data: res,
            });
        } catch (err) {
            return res.status(500).send({
                success: false,
                message: 'Something went wrong!',
            });
        }
    },
};

module.exports = UsersController;

Usage Usage is a straight process. First, define the following parameters

reqMsg = the request body; url = the RabbitMQ url;

resQueueName = the name of your response queue;

reqQueueName = the name of your rrquest queue;

options = the channel options eg { exclusive: true };

Call the Queue function passing in the rabbitMQ url to establish rabbitMQ connection.

const mqConnection = await Queue(url)

Call the Queue.relay function passing in the request, request queue name, response queue name and the option parameter.

const res = await Queue.relay(reqMsg, reqQueueName, resQueueName, options)

res is the response returned from the response queue.