Amqp-DSL - Fluent interface for node-amqp
AMQP-DSL is a fluent interface wrapper for node-amqp and help you write AMQP binding code in a clean and efficient way.
$ npm install amqp-dsl
``coffeescript
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 !'
)
`
`coffeescript
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', '#' )
.bind( 'stream2', 'routing.key' )
.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.
$3
* on( event, listener )$3
* .exchange( name, options )
* .exchange( name, callback(exchange) )
* .exchange( name, options, callback(exchange) )$3
* .queue( name, options )
* .queue( name, callback(queue) )
* .queue( name, options, callback(queue) )$3
* .subscribe( callback(message, header, deliveryInfo) )
* .subscribe( options, callback(message, header, deliveryInfo) )$3
* .bind( name, routingKey )$3
* .connect()
* .connect( callback(err, amqp) )
* .connect( amqp, 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
$3
$ cake doc... and browse
docs/Test
$ npm test
Release History
v2.0.0 - Updated node-amqp to 0.2.0 and async to 0.9.0`