ForgeTotal.js 5
sk

Total.js 5

Prepínaj databázy cez API DATA

Total.js 5 · total5@0.0.19 databasenosqlquerybuilder Spustené s Total.js 5

DATA je vstupný bod do query builderu nezávislý od databázy. Prvý argument je driver/table; nosql/people znamená "vstavaná databáza NoSQL, tabuľka people". Metódy builderu (where, sort, take, callback) sú rovnaké ako pri NOSQL(), takže kód tvojich akcií zostane rovnaký, ak neskôr vymeníš driver.

VolanieRobí
DATA.insert(table, doc)vloží dokument
DATA.find(table)vráti builder pre zoznam
DATA.read(table)vráti builder pre jeden dokument
DATA.update(table, data)aktualizuje dokumenty
DATA.remove(table)odstráni dokumenty
definitions/people.js
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));
	}
});
controllers/people.js
exports.install = function() {
	ROUTE('POST /people/ --> *People/insert');
	ROUTE('GET /people/ --> *People/query');
	ROUTE('PATCH /people/{id}/ --> *People/rename');
};