Prispôsobte stránky 404 a 401
Keď Total.js nemôže požiadavku obslúžiť, zobrazí vstavanú chybovú stránku. Trasa, ktorej URL je # plus stavový kód, ju nahradí: ROUTE('#404', fn) pre „nenájdené“, ROUTE('#401', fn) pre „neautorizované“ a to isté pre #400, #431 a ďalšie. Obslužná funkcia dostane $ ako každá trasa, ale stav nastavujete sami cez $.response.status: Total.js to za vás nerobí, ak existuje vlastná obslužná funkcia. Bez vlastnej funkcie sa použije vstavaná stránka a požiadavky AJAX (hlavička x-requested-with) dostanú namiesto HTML chybu vo formáte JSON.
$.fallback(code) pošle aktuálnu požiadavku obslužnej funkcii pre code, čo je spôsob, ako z vlastného kódu odpovedať 404 pri neexistujúcom zázname alebo 403 pri zakázanom zdroji.
exports.install = function() {
ROUTE('#404', not_found);
ROUTE('#401', unauthorized);
ROUTE('GET /items/{id}/', item);
ROUTE('+GET /private/', private_page);
};
var items = { '1': 'First item' };
function item($) {
var name = items[$.params.id];
if (name)
$.json({ name: name });
else
$.fallback(404);
}
function private_page($) {
$.plain('secret');
}
function not_found($) {
$.response.status = 404;
$.html('<h1>Nothing here</h1><p>' + $.url.encode() + ' does not exist.</p>');
}
function unauthorized($) {
$.response.status = 401;
$.json({ error: 'Please sign in first' });
}
AUTH(function($) {
$.invalid();
});