0.1.2 • Published 8 years ago

snap-datastore v0.1.2

Weekly downloads
4
License
ISC
Repository
github
Last release
8 years ago

snap-datastore

Dieses Modul bildet die Schnittstelle zur Datenbank und wurde für die Module User und Content aus dem oh.snap Paket zur Datenerstellung, -abfrage und -manipulation entwickelt. Theoretisch kann die API des Moduls für beliebige Pakete verwendet werden, dabei ist nur zu beachten, dass hier eine feste Datenstruktur hinterlegt ist.

Installation

nmp install snap-datastore --save

Unterstützte Datenbanken

MongoDB

Die API ist funktionsfähig

Neo4j

Die API befindet sich noch in der Entwicklungsphase

Einbinden

const _ds = require("snap-datastore")

API

Die API umfasst die nachfolgenden Funktionen. Die callback-Funktion erwartet bei jeder Funktion zwei Parameter. In dem ersten Parameter wird der Fehlercode von der Datenbank übergeben, in diesem Falle ist der zweite Parameter null. Wenn kein Fehler auftritt so wird der erste Parameter null sein und im zweiten Parameter wird der Rückgabewert gespeichert. Der zweite Parameter kann ein Objekt oder eine Liste von Objekten sein.

Initialisieren

Muss vor der Nutzung der nachfolgender Funktionen und nach dem Einbinden aufgerufen werden. Die Datenbankkonfiguration wird in dem config-Parameter übergeben.

init(config)
Beispielkonfiguration für MongoDB
_ds.init({   
    "type": "mongodb",
    "host": "mongodb://localhost:27017/",
    "dataStore": "test",
    "login": "",
    "password": ""
})
Beispielkonfiguration für Neo4J
_ds.init({     
    "type": "neo4j",
    "host": "localhost:7474/browser/",
    "dataStore": "",
    "login": "neo4j",
    "password": "test"
})

Node anlegen

createNode = (collection, node, callback)

Edge anlegen

createConnection = (collection, userIdFrom, userIdTo, data, callback)

Content anlegen

createContent = (content_collection, user_collection, userIdFrom, data, callback)

Node- oder Content-Eigenschaften ändert oder ergänzen

updateNode = (collection, id, newData, callback)

Edge-Eigenschaften ändern oder ergänzen

updateConnection = (collection, userIdFrom, userIdTo, newData, callback)

Node oder Content nach find-Kriterien suchen

findNode = (collection, find, callback)

Node als gelöscht markieren

deleteNode = (collection, obId, callback)

Edge löschen

deleteConnection = (collection, userIdFrom, userIdTo, callback)

Verwendungsbeispiele

Anlegen eines Users

_ds.createNode('user', {name:'Alice'}, (err, results) => { 
  if(err) console.log(err) 
  if(results) console.log(JSON.stringify(resuts))
})

Rückgabewert:

resuts = {_id:'s4gt658imsla', name:'Alice'}

Suchen nach einem Users

_ds.findNode('user', {name:'Alice'}, (err, results) => { 
  if(err) console.log(err) 
  if(results) console.log(JSON.stringify(resuts))
})

Rückgabewert:

resuts[0] = {_id:'s4gt658imsla', name:'Alice'}