UNPKG

nibi

Version:

Extremely easy management of queues with RabbitMQ and/or AmazonSQS

110 lines (84 loc) 2.85 kB
OFF-SQS: Manage Amazon SQS and RabbitMQ on node.js =================== This easy manager provides the basic functionality to use [**Amazon SQS**](https://aws.amazon.com/sqs/ "SQS Amazon") in production enviroment and [**RabbitMQ**](https://www.rabbitmq.com/) in development enviroment. To start using it just **clone it** or install it via **npm** `npm install off-sqs-debearloper`. ## Amazon SQS settings You need to add yours AWS keys in a JSON file, something like this: ``` { "accessKeyId": "STRING", "secretAccessKey": "STRING", "region": "STRING" } ``` > **Note:** that every operation checks first if the Queue exists, if not it'll create it.** ## RabbitMQ settings To work with RabbitMQ, you need to [**install the Server**](https://www.rabbitmq.com/install-homebrew.html). We recommend you to do it with [**homebrew**](http://brew.sh/), so you dont have to set up the server manually when you are in the development environment. Before installing make sure you have the latest brews: brew update Then, install RabbitMQ server with: ``` brew install rabbitmq ``` ## Enviroments `development` is the enviroment by default. If you want to use `production` or `qa` execute your node app in this way: NODE_ENV=production node yourApp.js //or NODE_ENV=qa node yourApp.js # Methods ## Import and declare ``` var Nibi = require('nibi'); var nibi = new Nibi(); ``` ## Configure - **Params:** an object with the configure params. - **Returns:** nothing. if you want to use AmazonSQS with this modul, you need make this ``` //require your own aws json file var myAwsConfigFile = require('./myAwsConfigFile'); nibi.configure({ awsConfigFile: myAwsConfigFile }); ``` ## Sender() - **Params:** the name of the SQS queue and the data you want to send. - **Returns:** nothing. **Usage:** ``` offSqs.sender('myQueueName', ["foo": "bar"]); ``` ##Receiver() - **Params:** the name of the SQS queue. - **Return:** A promise which will become a tuple of `receiver` a function and `queueUrl` a string. **Usage**: ``` offSqs.receiver('myQueue', yourDataManager); ``` > **Note:** Where `yourDataManager` is a function that receives every message on the queue, so you can easyly customize your data miner. Something like: `myMiner(messageOfTheQueue);`` ###Example ``` var printData = function(data){ console.log(data) } offSqs.receiver("queueName", printData) ``` ##getQueueUrl() - **Params:** The name of the SQS Queue. - **Returns:** A promise, which will become the url of the Queue. **Usage:** ``` offSqs.getQueueUrl('myQueue').then(function('myQueueURL'){ return myQueueURL; }); ``` ##parseMessage() - **Params:** Data received by SQS Queues. - **Returns:** The cleaned data of the `body` as array. **Usage:** ``` offSqs.parseMessage(data); ```