ForgeDokumentation
sv

Dokumentation

$ objektet av en Total.js 5 handlare

Total.js 5 · total5@0.0.19 referencecontrollerresponses Körd med Total.js 5

En route-hanterare får ett objekt, skrivet $ på den här webbplatsen. Det beskriver begäran och svarar på den. Svara en gång: efter $.json(), $.html() eller något annat svar är begäran klar.

Egenskaper

EgenskapTypVad det är
$.urlstringBegärans sökväg, utan frågesträngen.
$.methodstringGET, POST...
$.queryobjectFrågesträngen, tolkad.
$.paramsobjectRoutens {name}-segment.
$.bodyobjectKroppen, tolkad efter sin innehållstyp (JSON, URL-kodat formulär, XML eller multipart-fält).
$.filesarrayDe uppladdade filerna i en multipart-begäran.
$.headersobjectBegärans huvuden, med namn i små bokstäver.
$.ipstringIP-adressen; den första adressen i x-forwarded-for när huvudet finns.
$.hoststringHuvudet host.
$.referrerstringHuvudet referer.
$.protocolstringhttp eller https (även när en proxy anger det i x-forwarded-proto).
$.extstringURL:ens filändelse, utan punkt ($.extension är samma sak).
$.xhrbooleantrue när huvudet x-requested-with är XMLHttpRequest.
$.mobilebooleantrue när user agent ser ut som en mobil webbläsare.
$.robotbooleantrue när user agent ser ut som en sökrobot.
$.uastringEtt kort namn på webbläsare och system, som iPhone Safari eller Windows Chrome.
$.userobjectAnvändaren som AUTH() godkänt, eller ingenting.
$.languagestringSpråket som LOCALIZE() valde.
$.datatypestringjson, urlencoded, multipart, xml, text eller binary: typen på begärans kropp.
$.responseobjectVad som ska skickas: status, headers och value. Ändra $.response.status och $.response.headers innan du svarar.
$.req, $.resobjectsNode.js-begäran och -svaret.

Metoder som svarar

MetodVad den görRecept
$.json(value)Svarar med JSON.responses
$.jsonstring(text)Svarar med en text som redan är JSON, utan att serialisera den igen.controller-completion-and-cache
$.html(text)Svarar med HTML.responses
$.plain(text)Svarar med ren text ($.text är samma sak).responses
$.xml(text)Svarar med XML.responses
$.empty()Svarar med status 204 och utan kropp.responses
$.redirect(url, permanent)Omdirigerar (302, eller 301 när permanent är true).responses
$.binary(buffer, type, name)Svarar med byte och en innehållstyp.responses
$.file(path, name)Skickar en fil från disk.file-download
$.stream(type, stream, name)Skickar en läsbar ström.file-download
$.filefs(storage, id)Skickar en fil från en FILESTORAGE.filestorage
$.image(options)Skapar och skickar en bild vid behov.images
$.view(name, model)Renderar en vy med layouten och svarar med den.views-and-layouts
$.layout(name)Väljer en annan layout för nästa $.view().view-sections
$.proxy(url)Vidarebefordrar begäran till en annan URL och svarar med dess svar.proxy
$.respond(value)Svarar i formatet i $.response.output (json när det inte är satt).controller-completion-and-cache
$.invalid(value)Svarar med ett fel: en text, en statuskod som 404 eller en ErrorBuilder.actions-crud
$.fallback(code)Svarar med sidan för en felkod, den anpassade när ROUTE('#404') finns.error-pages
$.success(value)Svarar { "success": true }; value läggs till.responses
$.callback(err, value)Vid ett fel svarar den $.invalid(err), annars $.json(value), eller $.success() när value är undefined. Utan argument returnerar den en funktion (err, response) som gör samma sak.actions-crud
$.successful(fn)Returnerar en funktion (err, a, b, c): vid ett fel svarar den $.invalid(err), annars anropar den fn(a, b, c).controller-completion-and-cache
$.done(arg)Returnerar en funktion (err, response): vid ett fel svarar den $.invalid(err), annars med framgångsobjektet.controller-completion-and-cache

Andra metoder

MetodVad den görRecept
$.cookie(name, value, expiration)Läser en cookie, eller skriver en när du skickar ett värde.headers-and-cookies
$.csrf()Skapar en CSRF-token för den här klienten.csrf-protection
$.hostname(path)Den här serverns adress: protokoll, värd och sökvägen du skickar.restbuilder
$.action(name, model)Kör en åtgärd med den här begäran (användare, query och params).calling-actions-from-code
$.transform(name, value, callback)Kör en transformering med den här begäran.transforms
$.authorize(callback)Kör AUTH() för den här begäran och sätter $.user; returnerar ett promise när det inte finns någon callback.controller-completion-and-cache
$.notmodified(date)Svarar 304 och returnerar true när begäran har huvudet if-modified-since med det datumet.controller-completion-and-cache
$.httpcache(date)Sätter cache-huvudena och last-modified för svaret.controller-completion-and-cache
$.clear()Tar bort uppladdningens temporära filer. De tas bort ändå när begäran slutar.file-upload
$.autoclear(false)Behåller de uppladdade filerna efter begäran, så att du kan använda dem senare.upload-lifecycle-and-href
$.custom()Talar om för ramverket att du svarar själv via $.res: det skickar ingenting.controller-completion-and-cache
$.href(key, value)Använd QUERIFY() som i det länkade receptet, den testade inbyggda hjälparen för frågelänkar.upload-lifecycle-and-href
$.flush(), $.resume(), $.free(), $.cancel()Interna metoder: anropa dem inte.

Exemplet svarar med egenskaperna och anropar de metoder som inte behöver någon förberedelse.

controllers/api.js
exports.install = function() {
	ROUTE('GET /info/{a}/{b}/', info);
	ROUTE('POST /body/ @json', body);
	ROUTE('GET /answers/{kind}/', answers);
	ROUTE('GET /callback/{kind}/', callback);
};

function info($) {
	$.json({
		url: $.url,
		method: $.method,
		query: $.query,
		params: $.params,
		ext: $.ext,
		xhr: $.xhr,
		mobile: $.mobile,
		robot: $.robot,
		ua: $.ua,
		ip: $.ip,
		host: $.host,
		referrer: $.referrer,
		protocol: $.protocol,
		hostname: $.hostname('/x/'),
		datatype: $.datatype
	});
}

function body($) {
	$.json({ body: $.body, datatype: $.datatype });
}

function answers($) {
	switch ($.params.kind) {
		case 'json': return $.json({ a: 1 });
		case 'jsonstring': return $.jsonstring('{"a":1}');
		case 'html': return $.html('<b>x</b>');
		case 'plain': return $.plain('x');
		case 'xml': return $.xml('<a>1</a>');
		case 'empty': return $.empty();
		case 'redirect': return $.redirect('/x/', true);
		case 'binary': return $.binary(Buffer.from('abc'), 'application/octet-stream');
		case 'invalid': return $.invalid(409);
		case 'success': return $.success({ id: 7 });
		case 'status': $.response.status = 201; return $.json({ created: true });
		case 'header': $.response.headers['x-example'] = 'yes'; return $.json({});
	}
}

function callback($) {
	switch ($.params.kind) {
		case 'error': return $.callback('failed');
		case 'value': return $.callback(null, { v: 1 });
		case 'nothing': return $.callback(null);
		case 'function': return setImmediate($.callback(), null, { later: true });
		case 'successful': return setImmediate($.successful(function(a, b) { $.json({ a: a, b: b }); }), null, 'x', 'y');
	}
}