Skip to content

developmentseed/backbone-simpledb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published