ForgeTotal.js 5
es

Total.js 5

Usa la API DATA para cambiar de base de datos

Total.js 5 · total5@0.0.19 databasenosqlquerybuilder Ejecutada con Total.js 5

DATA es un punto de entrada al query builder independiente de la base de datos. El primer argumento es driver/table; nosql/people significa "la base NoSQL integrada, tabla people". Los métodos del builder (where, sort, take, callback) son los mismos que usas con NOSQL(), así que el código de tus acciones no cambia si más adelante sustituyes el driver.

LlamadaHace
DATA.insert(table, doc)inserta un documento
DATA.find(table)devuelve un builder para una lista
DATA.read(table)devuelve un builder para un documento
DATA.update(table, data)actualiza documentos
DATA.remove(table)elimina documentos
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');
};