NodeJS MongoDB external populate for microservices
A MongoDb attribute population between different microservices, performed by kue library.
Installation
npm install mongo-ext-populate --save
Add to your project's .env file the variables like in the example (.env.sample).
Usage
Microservice A
The microservice A must call the function addListener
to be notified when it has to make a query to populate an attribute.
var extPopulate = ; var name = 'key'; //key (eg. attribute name)var params = connectionString: 'mongodb://localhot:27017/db-name' //connection string to database collection: 'collectionName' //collection name extPopulate;
Microservice B
The microservice B may request an attribute population by using:
- a function with callback
- an Express middleware
Function
var extPopulate = ; var id = '1'; //MongoDb ID or array of IDsvar attribute = 'key'; //equals to "name" attribute used by microservice Avar fields = attr1: 1 attr2: 1 attr3: 0 //fields extPopulate;
Middleware
var ExtPopulate = ;var express = ;var router = express; var resultKey = 'key';var extPopulate = resultKeyPopulateMiddleware; var attribute = 'key'; //equals to "name" attribute used by microservice Avar fields = attr1: 1 attr2: 1 attr3: 0 //fields selection router
Test
Setup
- Create .env.test file (copy and rename .env.sample).
- Create logs/test.log file.
Run tests
npm test
Coverage
npm run-script test-travis