ForgeTotal.js 5
nl

Total.js 5

De DATA-API gebruiken om van database te wisselen

Total.js 5 · total5@0.0.19 databasenosqlquerybuilder Uitgevoerd met Total.js 5

DATA is een databaseonafhankelijk toegangspunt tot de query builder. Het eerste argument is driver/table; nosql/people betekent "de ingebouwde NoSQL-database, tabel people". De builder-methoden (where, sort, take, callback) zijn dezelfde als bij NOSQL(), dus de code van je acties blijft gelijk als je later de driver vervangt.

AanroepDoet
DATA.insert(table, doc)voegt een document in
DATA.find(table)geeft een builder voor een lijst
DATA.read(table)geeft een builder voor één document
DATA.update(table, data)werkt documenten bij
DATA.remove(table)verwijdert documenten
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');
};