btrz-sqs
A simple client to send messages to an AWS SQS queue with a very convenient interface.
It uses native Promises
Runtimes supported
io.js >= 1.0.3 node v0.11.x with the --harmony flag
Usage
Add the module to your package.json directly or just run
npm install btrz-sqs --save
Require and use the Queue object to create and send messages to a queue.
let Queue = require("btrz-sqs").Queue;
let q = new Queue(config, queueName);
let obj = {text: "An object to send as a message", email: "email@example.com"};
// This creates a message that SQS will be able to work with.
let msg = Queue.createMessage("theId", obj);
// Now we can send the message
var promise = q.send([msg]);
// Send returns a Promise so we can work with it normally.
promise.then(function (result) {
// Do something with the result
})
.catch(function (err) {
// Do something with the error
});
Config object
config = {
key: process.env.AWS_KEY,
secret: process.env.AWS_SECRET,
sqs: {
dataImport: {
queueUrl: process.env.AWS_SQS_URL,
region: "us-east-1"
}
}
};
The sqs object in the config can have multiple queues, in the constructor you indicate what queue to use given a string that is the key in the config.sqs object. In this case is dataImport
new Queue(config, "dataImport");
.createMessage
The static .createMessage method takes an id and some object or primitive to use as the message.
Objects will be serialize with JSON.stringify
.send
The instance .send method takes an array of messages to send to the queue.
It returns a native Promise