/fh-sync

Node.js implementation of the FeedHenry Data Synchronisation Server. To be used in conjunction with the FeedHenry Data Synchronisation Client.

Primary LanguageJavaScriptApache License 2.0Apache-2.0

fh-sync

Node.js implementation of the FeedHenry Data Syncronisation Server. To be used in conjunction with the FeedHenry Data Syncronisation Client.

Dependencies

You will need a local Mongodb server and Redis server. For information on setting up these

Mongodb see

https://docs.mongodb.com/manual/installation/

Redis see

https://redis.io/topics/quickstart

Example Server

To run the example server start MongoDB and Redis locally on their default ports then issue the following commands in this repository:

cd examples/basic-express-example/
npm install
node server.js

When the server has started try making the following cURL request:

curl http://localhost:3000/sync/messages -X POST --data '{"fn": "syncRecords"}' -H "content-type:application/json"

Usage

npm install --save fh-sync

This will install the latest version of fh-sync and save the installed version in your package.json

To use sync in your application, require it and call connect.

var sync = require('fh-sync');

var mongodbConnectionString = 'mongodb://127.0.0.1:27017/sync';
var redisUrl = 'redis://127.0.0.1:6379';

sync.api.connect(mongodbConnectionString, {}, redisUrl, function(){});

To configure a dataset for syncing, wait for the sync:ready event, then init the dataset.

sync.api.getEventEmitter().on('sync:ready', function() {
  console.log('sync ready');

  sync.api.init('myDataset', {
    syncFrequency: 10 // seconds
  }, function() {});
});

Documentation

See Documentation folder

Tests

In order to run the tests, please make sure you have Docker installed.

Before running tests do:

npm install
npm install -g grunt-cli

Then to run the tests use npm test