a github-powered database
Create a new Hubdb instance. This is a database-like wrapper for a branch of a GitHub repository that treats JSON objects in that branch as documents.
Hubdb shines where GitHub itself makes sense: you can take advantage of GitHub's well-architected APIs and user permissions. A good example of hubdb in practice is in stickshift, where it powers a lightweight query storage for an analytics app.
Takes a configuration object with options:
usernamethe user's name of the repository. this is not necessary the user that's logged in.repothe repository namebranchthe branch of the repository to use as a database.tokena GitHub token. You'll need to get this by OAuth'ing into GitHub or use an applicaton token.
| parameter | type | description |
|---|---|---|
options |
Object |
var db = Hubdb({ token: 'MY_TOKEN', username: 'mapbox', repo: 'hubdb', branch: 'db' }); db.add({ grass: 'green' }, function() { db.list(function(err, res) { // [{ // path: '2e959f35c6022428943b9c96d974498d.json' // data: { grass: 'green' } // }] }); });
List documents within this database. If successful, the given
callback is called with an array of documents as
{ path: string, data: object } objects.
| parameter | type | description |
|---|---|---|
callback |
Function | called with (err, contents): contents is an array of { path: string, data: object } |
Add a new object to the database. If successful, the callback is called
with (err, res) in which res reveals the id internally chosen
for this new item.
| parameter | type | description |
|---|---|---|
data |
Object | |
callback |
Function | called with (err, result, id) |
Remove an item from the database given its id and a callback.
| parameter | type | description |
|---|---|---|
id |
String | |
callback |
Function | called with (err, result, id) |
Get an item from the database given its id and a callback.
| parameter | type | description |
|---|---|---|
id |
String | |
callback |
Function | called with (err, contents): contents are given as parsed JSON |
Update an object in the database, given its id, new data, and a callback.
| parameter | type | description |
|---|---|---|
id |
String | |
data |
Object | as any JSON-serializable object |
callback |
Function | called with (err, result, id) |
Requires nodejs.
$ npm install hubdb
$ npm test