ForgeDokumentácia
sk

Dokumentácia

Objekt $ pre obchodníka Total.js 5

Total.js 5 · total5@0.0.19 referencecontrollerresponses Spustené s Total.js 5

Obsluha routy dostáva jeden objekt, na tomto webe zapísaný ako $. Popisuje požiadavku a odpovedá na ňu. Odpovedajte iba raz: po $.json(), $.html() alebo inej odpovedi je požiadavka dokončená.

Vlastnosti

VlastnosťTypČo to je
$.urlstringCesta požiadavky bez reťazca dotazu.
$.methodstringGET, POST...
$.queryobjectReťazec dotazu, spracovaný.
$.paramsobjectSegmenty {name} routy.
$.bodyobjectTelo spracované podľa typu obsahu (JSON, formulár URL-encoded, XML alebo polia multipart).
$.filesarrayNahrané súbory požiadavky multipart.
$.headersobjectHlavičky požiadavky s názvami malými písmenami.
$.ipstringIP adresa; prvá adresa z x-forwarded-for, keď hlavička existuje.
$.hoststringHlavička host.
$.referrerstringHlavička referer.
$.protocolstringhttp alebo https (aj vtedy, keď to proxy uvádza v x-forwarded-proto).
$.extstringPrípona URL bez bodky ($.extension je to isté).
$.xhrbooleantrue, keď je hlavička x-requested-with rovná XMLHttpRequest.
$.mobilebooleantrue, keď user agent vyzerá ako mobilný prehliadač.
$.robotbooleantrue, keď user agent vyzerá ako crawler.
$.uastringKrátky názov prehliadača a systému, napríklad iPhone Safari alebo Windows Chrome.
$.userobjectPoužívateľ, ktorého schválil AUTH(), alebo nič.
$.languagestringJazyk, ktorý vybral LOCALIZE().
$.datatypestringjson, urlencoded, multipart, xml, text alebo binary: typ tela požiadavky.
$.responseobjectČo sa odošle: status, headers a value. Pred odpoveďou zmeňte $.response.status a $.response.headers.
$.req, $.resobjectsPožiadavka a odpoveď Node.js.

Metódy, ktoré odpovedajú

MetódaČo robíRecept
$.json(value)Odpovie JSON.responses
$.jsonstring(text)Odpovie textom, ktorý už je JSON, bez opätovnej serializácie.controller-completion-and-cache
$.html(text)Odpovie HTML.responses
$.plain(text)Odpovie čistým textom ($.text je to isté).responses
$.xml(text)Odpovie XML.responses
$.empty()Odpovie stavom 204 a bez tela.responses
$.redirect(url, permanent)Presmeruje (302, alebo 301, keď je permanent true).responses
$.binary(buffer, type, name)Odpovie bajtmi a typom obsahu.responses
$.file(path, name)Odošle súbor z disku.file-download
$.stream(type, stream, name)Odošle čitateľný stream.file-download
$.filefs(storage, id)Odošle súbor z FILESTORAGE.filestorage
$.image(options)Vytvorí a odošle obrázok na požiadanie.images
$.view(name, model)Vykreslí pohľad s layoutom a odpovie ním.views-and-layouts
$.layout(name)Vyberie iný layout pre nasledujúce $.view().view-sections
$.proxy(url)Presmeruje požiadavku na inú URL a odpovie jej odpoveďou.proxy
$.respond(value)Odpovie vo formáte $.response.output (json, keď nie je nastavený).controller-completion-and-cache
$.invalid(value)Odpovie chybou: textom, stavovým kódom ako 404 alebo ErrorBuilder.actions-crud
$.fallback(code)Odpovie stránkou chybového kódu, vlastnou, keď existuje ROUTE('#404').error-pages
$.success(value)Odpovie { "success": true }; value sa k nemu pridá.responses
$.callback(err, value)Pri chybe odpovie $.invalid(err), inak $.json(value) alebo $.success(), keď je value undefined. Bez argumentov vráti funkciu (err, response), ktorá robí to isté.actions-crud
$.successful(fn)Vráti funkciu (err, a, b, c): pri chybe odpovie $.invalid(err), inak zavolá fn(a, b, c).controller-completion-and-cache
$.done(arg)Vráti funkciu (err, response): pri chybe odpovie $.invalid(err), inak odpovie objektom úspechu.controller-completion-and-cache

Ďalšie metódy

MetódaČo robíRecept
$.cookie(name, value, expiration)Prečíta cookie, alebo ju zapíše, keď odovzdáte hodnotu.headers-and-cookies
$.csrf()Vytvorí token CSRF pre tohto klienta.csrf-protection
$.hostname(path)Adresa tohto servera: protokol, hostiteľ a cesta, ktorú odovzdáte.restbuilder
$.action(name, model)Spustí akciu s touto požiadavkou (používateľ, query a params).calling-actions-from-code
$.transform(name, value, callback)Spustí transformáciu s touto požiadavkou.transforms
$.authorize(callback)Spustí AUTH() pre túto požiadavku a nastaví $.user; bez callbacku vráti promise.controller-completion-and-cache
$.notmodified(date)Odpovie 304 a vráti true, keď požiadavka má hlavičku if-modified-since s týmto dátumom.controller-completion-and-cache
$.httpcache(date)Nastaví hlavičky cache a last-modified odpovede.controller-completion-and-cache
$.clear()Odstráni dočasné súbory nahrávania. Odstránia sa aj tak po skončení požiadavky.file-upload
$.autoclear(false)Ponechá nahrané súbory po požiadavke, aby ste ich mohli použiť neskôr.upload-lifecycle-and-href
$.custom()Povie frameworku, že odpoviete sami cez $.res: nič neodošle.controller-completion-and-cache
$.href(key, value)Použite QUERIFY() ako v odkazovanom recepte, otestovaný natívny pomocník pre odkazy s query.upload-lifecycle-and-href
$.flush(), $.resume(), $.free(), $.cancel()Interné metódy: nevolajte ich.

Príklad odpovedá vlastnosťami a volá metódy, ktoré nepotrebujú žiadnu prípravu.

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');
	}
}