ForgeTotal.js 5
fr

Total.js 5

Utiliser l'API DATA pour changer de base de données

Total.js 5 · total5@0.0.19 databasenosqlquerybuilder Exécutée avec Total.js 5

DATA est un point d'entrée du query builder indépendant de la base de données. Le premier argument est driver/table ; nosql/people signifie « la base NoSQL intégrée, table people ». Les méthodes du builder (where, sort, take, callback) sont les mêmes que celles de NOSQL(), donc le code de vos actions reste identique si vous remplacez le driver plus tard.

AppelFait
DATA.insert(table, doc)insère un document
DATA.find(table)renvoie un builder pour une liste
DATA.read(table)renvoie un builder pour un document
DATA.update(table, data)met à jour des documents
DATA.remove(table)supprime des documents
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');
};