A 404-es és 401-es oldal testreszabása
Ha a Total.js nem tud kiszolgálni egy kérést, beépített hibaoldalt mutat. Egy olyan útvonal, amelynek URL-je # és az állapotkód, lecseréli: ROUTE('#404', fn) a „nem található”-ra, ROUTE('#401', fn) a „nem jogosult”-ra, és ugyanígy a #400, #431 és mások. A kezelő $-t kap, mint bármely útvonal, de az állapotot te állítod be a $.response.status-szal: a Total.js nem teszi meg helyetted, ha van saját kezelő. Saját kezelő nélkül a beépített oldal jelenik meg, az AJAX-kérések (x-requested-with fejléc) pedig HTML helyett JSON-hibát kapnak.
A $.fallback(code) a jelenlegi kérést a code kezelőjéhez irányítja, így a saját kódodból válaszolhatsz 404-gyel egy nem létező rekordra vagy 403-mal egy tiltott erőforrásra.
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();
});