ForgeTotal.js 5
el

Total.js 5

Περιορισμός μιας διαδρομής με flags

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

Τα flags ξεκινούν με @ και μπαίνουν μετά το URL. Μια διαδρομή ταιριάζει μόνο όταν το αίτημα ικανοποιεί όλα τα flags της· αλλιώς το Total.js δοκιμάζει την επόμενη διαδρομή για το ίδιο URL και απαντά 404 όταν καμία δεν ταιριάζει. Χρήσιμα flags:

  • @json και @xml: το body πρέπει να είναι JSON ή XML
  • @xhr: το αίτημα πρέπει να είναι αίτημα AJAX (header x-requested-with)
  • @upload: το body πρέπει να είναι multipart/form-data
  • @debug και @release: η διαδρομή υπάρχει μόνο σε αυτή τη λειτουργία
  • @mobile και @robot: ο client είναι κινητός περιηγητής ή crawler
controllers/data.js
exports.install = function() {
	ROUTE('POST /data/ @json', json_only);
	ROUTE('POST /data/ @xml', xml_only);

	// Careful: a route with flags has a lower priority than the same URL without flags
	ROUTE('POST /mixed/ @json', json_only);
	ROUTE('POST /mixed/', anything);
};

function json_only($) {
	$.json({ handler: 'json' });
}

function xml_only($) {
	$.json({ handler: 'xml' });
}

function anything($) {
	$.json({ handler: 'anything' });
}

Μην αναμειγνύετε ποτέ μια διαδρομή με flags και μια διαδρομή χωρίς flags στο ίδιο URL: αυτή χωρίς flags ελέγχεται πρώτη και παίρνει κάθε αίτημα, οπότε η διαδρομή με flags δεν φτάνει ποτέ.