Skip to content

bringr/node-amqp-dsl

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fluent Interface for dealing with AMQP on NodeJS Build Status

AMQP-DSL is a fluent interface wrapper for node-amqp and help you write AMQP binding code in a clean and efficient way.

Installation

$ npm install amqp-dsl

Usage overview

Simple connection (more details: docs/example-connection)

amqp = require 'amqp-dsl'

amqp.login(

  login: 'user'
  password: 'password'
  host: 'localhost'

).connect((err, amqp) ->

  if err
    throw err
    return
  
  console.log 'We are connected !'
  
)

Simple example (more details: docs/example-simple)

AmqpDsl = require 'amqp-dsl'

AmqpDsl.login(
  login: 'legen'
  password: 'dary'
)
.on( 'close', () -> console.error "RabbitMQ connection closed" )
.on( 'error', (err) -> console.error "RabbitMQ error", err )
.on( 'ready', () -> console.log "Connected to RabbitMQ" )

.queue( 'testQueue', (queue) -> console.log "Connected to Queue", queue.name )
  .bind( 'stream', '#' )
  .subscribe( (message, header, deliveryInfo) -> )

.queue( 'queue2' )
  .bind( 'search', '#.ok' )

.queue( 'queue3', passive:true )

.connect( (err, amqp) ->

  if err
    throw err
    return

  # Do other stuff with `amqp` like subscribing to a queue

  queue3 = amqp.queues.queue3
  
  queue3.subscribe( ack:true, ( message, header, deliveryInfo ) ->
    console.log "Hey ! We got one new message !"
    queue3.shift()
  )

)

See examples/ and docs/ for more information.

API

.login

  • login( options = {} )

.on

  • on( event, listener )

.exchange

  • .exchange( name, options )
  • .exchange( name, callback(exchange) )
  • .exchange( name, options, callback(exchange) )

.queue

  • .queue( name, options )
  • .queue( name, callback(queue) )
  • .queue( name, options, callback(queue) )

.queue(...).subscribe

  • .subscribe( callback(message, header, deliveryInfo) )
  • .subscribe( options, callback(message, header, deliveryInfo) )

.queue(...).bind

  • .bind( name, routingKey )

.connect

  • .connect( amqp, callback(err, amqp) )
  • .connect( callback(err, amqp) )

The amqp argument is simply hashtable with the following properties:

  • queues (hashtable of AMQP::queues)
  • exchanges (hashtable of AMQP::Exchange)
  • connection (AMQP::Connection)

Documentation

Build documentation

$ cake doc

... and browse docs/

Test

$ npm test

About

AMQP-DSL is a fluent interface for AMQP (RabbitMQ,...) on NodeJS

Resources

License

Stars

Watchers

Forks

Packages

No packages published