A super lightweight and storage agnostic data abstraction layer.
JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
lib
test
.gitignore
.travis.yml
LICENSE
README.md
package.json

README.md

Trapper Keeper

A super lightweight and storage agnostic data abstraction layer.

Build Status

When you don't want to use Resourceful throw it in Trapper Keeper. A lot of the underlying code and engine structure is based on Resouceful but all the hooks, events and relationships are stripped out.

Example

var trapper_keeper = require('trapperkeeper');

// Create a connection to a data store
var db = trapper_keeper.connect('mongodb', 'mongodb://127.0.0.1', 27017, { database: 'awesome' });

// Create a namespaced resource
// Namespace will correspond with data store key, collection, table, etc.
var resource = db.resource('namespace');

db.connection.on('ready', function() {
  resource.get(id, callback);
  resource.create(attrs, callback);
});

Engines

Trapper Keeper currently has engines for:

  • Memory
  • MongoDB
  • Redis
  • MySQL

Caching

Using the cache feature is optional, current engines that support this feature:

  • Memory
  • Redis

An example of a resource with caching:

// Define a resource with cache functionality
var resource = connection.resource('user').cache('memory');

Function Signatures

resource.get(id, callback);

resource.create(attrs, callback);

resource.save(id, attrs, callback);

resource.destroy(id, callback);

resource.update(id, attrs, callback);

resouce.find(conditions, callback);

resouce.all(callback);

Installation

Installing trapper-keeper

  $ [sudo] npm install trapperkeeper

Tests

All tests are written with mocha and should be run with npm:

  $ npm test