ForgeTotal.js 5
el

Total.js 5

Χρήση του DATA API για αλλαγή βάσης δεδομένων

Total.js 5 · total5@0.0.19 databasenosqlquerybuilder Εκτελέστηκε με το Total.js 5

Το DATA είναι ένα ανεξάρτητο από τη βάση σημείο εισόδου στον query builder. Το πρώτο όρισμα είναι driver/table· το nosql/people σημαίνει «η ενσωματωμένη βάση NoSQL, πίνακας people». Οι μέθοδοι του builder (where, sort, take, callback) είναι οι ίδιες με του NOSQL(), οπότε ο κώδικας των ενεργειών σας μένει ίδιος αν αργότερα αλλάξετε driver.

ΚλήσηΚάνει
DATA.insert(table, doc)εισάγει ένα έγγραφο
DATA.find(table)επιστρέφει builder για λίστα
DATA.read(table)επιστρέφει builder για ένα έγγραφο
DATA.update(table, data)ενημερώνει έγγραφα
DATA.remove(table)αφαιρεί έγγραφα
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');
};