38

roger-rabbit: A module that makes the process of consuming and publishing messag...

 5 years ago
source link: https://www.tuicool.com/articles/hit/6nQVjaj
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Roger Rabbit

Roger Rabbit is a module that makes the process of consuming and publishing messages in message brokers easier. It is a wrapper for amqplib .

Install

npm install roger-rabbit --save

Example

// broker.js
const Broker = require('roger-rabbit');

module.exports = Broker({
  host: 'amqp://guest:guest@localhost:5672',
  exchange: {
    type: 'topic',
    name: 'exchange',
  },
});
// consumer.js
const broker = require('./broker');

const queue = {
  name: 'queue.name',
};

broker.consume({ queue }).then({ message, ack, reject } => {
  // do something with message
  ack();
});
// publisher.js
const broker = require('./broker');

broker.publish('queue.name', { message: 'hello world' });

Documentation

Broker

Option Description Required Default host message broker connection url yes null logger logger object no console disableLog disable log (all levels) no false exchange no null queue no null

Exchange options

Option Description Default type direct, topic, fanout empty string (deafault) name exchange name null options options used in assertExchange null

Queue options

Option Description Default name queue name null options options used in assertQueue null

broker.consume

broker.consume expects to receive. Example:

const queue = {
  name: 'queue.name',
  options: {},
};

broker.consume({ queue })
  .then(({ ack, reject, message }) => /* handle success */)
  .catch(error => /* handle error */);

broker.publish

broker.publish expects to receive queue name, message and. Example:

const queue = {
  options: {},
};

broker.publish('queue.name', { message: 'message' }, { queue })
  .then(({ queue, message }) => /* handle success */)
  .catch(error => /* handle error */);

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK