dynoga
Version:
**Dynoga** is a light library for use DynamoDB with javascript objects
95 lines (59 loc) • 2.05 kB
Markdown
# Dynoga
[](https://nodei.co/npm/dynoga/)
## Disclaimer
**Dynoga** is a lightweight library to use DynamoDB with JavaScript objects.
We use CRUD naming for easy matching with [Backbone.ioBind](https://github.com/logicalparadox/backbone.iobind)
## How to use
### Initialize
```
Dynoga = require "dynoga"
db = new Dynoga
endpoint: config.dynamoDB.endpoint
accessKeyId: config.dynamoDB.accessKeyId
secretAccessKey: config.dynamoDB.secretAccessKey
region: config.dynamoDB.region
```
### Create an item
```
db.create "mytable", item, (err, model) ->
if err then console.log err
console.log model
```
### Read an item
**keys**: Key/value object, a hash is mandatory
```
db.read "mytable", keys, (err, model) ->
if err then console.log err
console.log model
```
### Update an item
**item**: Key/value object, a hash and range are mandatory
Dynoga automatically find primary keys for update the good item.
```
db.update "mytable", item, (err, model) ->
if err then console.log err
console.log model
```
### Delete an item
**item**: Key/value object, a hash and range are mandatory
Dynoga automatically find primary keys for delete the good item.
```
db.delete "mytable", item, (err, model) ->
if err then console.log err
console.log model
```
## Running Tests
Put in your environment
```
export METIDIA_ACCESS_KEY_ID=YOURACCESKEYID
export METIDIA_SECRET_ACCESS_KEY=YOURSECRETACCESSKEY
```
Run a local dynomadb instance
`$ java -Djava.library.path=. -jar DynamoDBLocal.jar`
cf: [DynamoDB Local for Desktop Development](http://aws.typepad.com/aws/2013/09/dynamodb-local-for-desktop-development.html)
Run tests
`npm test` Execute units tests
`npm run watch-test` Execute units tests with watch files for changes
## Warning
For a natural sorting for READ operations, Dynoga use an internal `_createTimeStamp` attribute.
Please don't use it if you don't want surprise ;)