backbone-simpledb

0.1.1 • Public • Published

Backbone SimpleDB

Server-side overrides for Backbone to use simpledb for Model persistence.

Installation

npm install backbone-simpledb

Usage

Pass an options object when calling require(). backbone-simpledb exports an SimpleDB sdb instance and a sync method that you can use to override Backbone.sync or Model.sync for individual models.

var Backbone = require('backbone');
Backbone.sync = require('backbone-simpledb')({
    keyid: 'MyAmazonID',
    secret: 'MyAmazonSecretKey',
    domain: 'testdb'
}).sync;

// Backbone.sync will now load and save models from the `testdb` domain

Conventions

backbone-simpledb stores models in the db using the model.url as its key. Collections retrieve models by matching the Collection url against the initial portion of the Model url.

var orange = new FruitModel({id: 'orange'});
var apple = new FruitModel({id: 'apple'});
var banana = new FruitModel({id: 'banana'});

console.log(orange.url()); // fruits/orange
console.log(apple.url());  // fruits/apple
console.log(banana.url()); // fruits/banana

var fruits = new FruitCollection();

console.log(fruits.url);   // fruits

fruits.fetch();            // retrieves orange, apple, banana

Limitations

backbone-simpledb does not attempt to overcome any of SimpleDB's inherent limitations. In particular

  • Each model is restricted to 256 attributes
  • Each attribute is restricted to 1024 bytes of data

In addition, model attributes are stored using JSON.stringify in order to overcome SimpleDB's string-only attribute datatypes. This further reduces the available space per attribute for data.

Authors

Dependencies (2)

Dev Dependencies (0)

    Package Sidebar

    Install

    npm i backbone-simpledb

    Weekly Downloads

    1

    Version

    0.1.1

    License

    none

    Last publish

    Collaborators

    • yhahn