anti-db

1.0.0 • Public • Published

anti-db

Anti-db takes the idea of a database fronted by a memory cache and reverses it, for maximum performance. The storage is a POJO (plain old JS object), which is saved to disk upon program exit. Optionally, the data can be saved to disk periodically.

###Initializing an object from disk

var antidb = require('anti-db')();
var myobj = antidb.obj('./some.json');
myobj.hey = 'there';
// no need to call save(), automatically saved to disk on exit ./some.json

Use array instead of object

var myarr = antidb.obj('./somearr.json', []);
myarr.push(1970);

Save obj to disk periodically, just to be safer

var antidb = require('anti-db')(10000);  // every 10 sec.
var myobj = antidb.obj('./some.json');
myobj.hey = 'there';

Periodical mode

Will not attempt any saving to disk on SIGINT EXIT etc.., and just save to disk periodically.

var antidb = require('anti-db')(period = 10000, nosaveonexit = 1});  // every 10 sec.
var myobj = antidb.obj('./some.json');
myobj.hey = 'there';

Provide a default object / model and seal the object from further property additions

var antidb = require('anti-db')();
var myobj = antidb.obj('./some.json', {name: 'Chris', age: 21});

Override loading and saving of objects - Use as cache for other data sources

// Using a CSV as backing file

var antidb = require('anti-db')();
antidb.loadFunc = function(name, type){
	var csv_arr = fs.readFileSync(name).toString().split(/\n/);
	// put into JSON object
	return obj;
}
antidb.saveFunc = function(name, o){
	require('json2csv')({data: json, fields: ['car', 'price', 'color']}, function(err, csv) {
	  if (err) console.log(err);
	  fs.writeFile('file.csv', csv, function(err) {
	    if (err) throw err;
	    console.log('file saved');
	  });
	});
}

Debug mode

Do this when running your app..

$ debug=1 node myapp

Readme

Keywords

none

Package Sidebar

Install

npm i anti-db

Weekly Downloads

3

Version

1.0.0

License

none

Last publish

Collaborators

  • dpweb