ForgeTotal.js 5
ro

Total.js 5

Restrângerea unei rute cu flag-uri

Total.js 5 · total5@0.0.19 routingflags Executată cu Total.js 5

Flag-urile încep cu @ și merg după URL. O rută se potrivește doar când cererea satisface toate flag-urile ei; altfel Total.js încearcă următoarea rută pentru același URL și răspunde 404 dacă niciuna nu se potrivește. Flag-uri utile:

  • @json și @xml: body-ul trebuie să fie JSON sau XML
  • @xhr: cererea trebuie să fie o cerere AJAX (antetul x-requested-with)
  • @upload: body-ul trebuie să fie multipart/form-data
  • @debug și @release: ruta există doar în acel mod
  • @mobile și @robot: clientul este un browser mobil sau un 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' });
}

Nu amesteca niciodată o rută cu flag-uri și o rută fără flag-uri pe același URL: cea fără flag-uri este verificată prima și preia toate cererile, deci ruta cu flag-uri nu este niciodată atinsă.