Mit der DATA-API die Datenbank wechseln
DATA ist ein datenbankunabhängiger Einstieg in den Query-Builder. Das erste Argument ist driver/table; nosql/people bedeutet "die eingebaute NoSQL-Datenbank, Tabelle people". Die Builder-Methoden (where, sort, take, callback) sind dieselben wie bei NOSQL(), der Code deiner Actions bleibt also gleich, wenn du den Treiber später austauschst.
| Aufruf | Tut |
|---|---|
DATA.insert(table, doc) | fügt ein Dokument ein |
DATA.find(table) | liefert einen Builder für eine Liste |
DATA.read(table) | liefert einen Builder für ein Dokument |
DATA.update(table, data) | aktualisiert Dokumente |
DATA.remove(table) | entfernt Dokumente |
NEWACTION('People/insert', {
name: 'Insert a person',
input: '*name:String, age:Number',
action: function($, model) {
model.id = UID();
DATA.insert('nosql/people', model).callback(() => $.success(model.id));
}
});
NEWACTION('People/query', {
name: 'List people',
query: 'sort:Lowercase',
action: function($) {
DATA.find('nosql/people').sort($.query.sort || 'name_asc').callback((err, response) => $.callback(response));
}
});
NEWACTION('People/rename', {
name: 'Rename a person',
params: '*id:UID',
input: '*name:String',
action: function($, model) {
DATA.update('nosql/people', { name: model.name }).where('id', $.params.id).callback((err, count) => $.success(count));
}
});exports.install = function() {
ROUTE('POST /people/ --> *People/insert');
ROUTE('GET /people/ --> *People/query');
ROUTE('PATCH /people/{id}/ --> *People/rename');
};