ForgeTotal.js 5
sv

Total.js 5

Använd DATA-API:et för att byta databas

Total.js 5 · total5@0.0.19 databasenosqlquerybuilder Körd med Total.js 5

DATA är en databasoberoende ingång till query buildern. Det första argumentet är driver/table; nosql/people betyder "den inbyggda NoSQL-databasen, tabellen people". Buildermetoderna (where, sort, take, callback) är desamma som med NOSQL(), så koden i dina actions förblir densamma om du senare byter drivrutin.

AnropGör
DATA.insert(table, doc)infogar ett dokument
DATA.find(table)returnerar en builder för en lista
DATA.read(table)returnerar en builder för ett dokument
DATA.update(table, data)uppdaterar dokument
DATA.remove(table)tar bort dokument
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');
};