ForgeDokumentáció
hu

Dokumentáció

A Total.js 5 kereskedő tárgya

Total.js 5 · total5@0.0.19 referencecontrollerresponses Total.js 5-tel lefuttatva

Az útvonalkezelő egy objektumot kap, amelyet ezen az oldalon $-ként írunk. Leírja a kérést, és válaszol rá. Csak egyszer válaszolj: a $.json(), a $.html() vagy bármely más válasz után a kérés befejeződött.

Tulajdonságok

TulajdonságTípusMi ez
$.urlstringA kérés útvonala a lekérdezési karakterlánc nélkül.
$.methodstringGET, POST...
$.queryobjectA lekérdezési karakterlánc, értelmezve.
$.paramsobjectAz útvonal {name} szegmensei.
$.bodyobjectA törzs, a tartalomtípus szerint értelmezve (JSON, URL-kódolt űrlap, XML vagy multipart mezők).
$.filesarrayEgy multipart kérés feltöltött fájljai.
$.headersobjectA kérés fejlécei, kisbetűs nevekkel.
$.ipstringAz IP-cím; az x-forwarded-for első címe, ha a fejléc létezik.
$.hoststringA host fejléc.
$.referrerstringA referer fejléc.
$.protocolstringhttp vagy https (akkor is, ha egy proxy ezt az x-forwarded-proto-ban jelzi).
$.extstringAz URL kiterjesztése pont nélkül (a $.extension ugyanaz).
$.xhrbooleantrue, ha az x-requested-with fejléc értéke XMLHttpRequest.
$.mobilebooleantrue, ha a user agent mobil böngészőnek tűnik.
$.robotbooleantrue, ha a user agent keresőrobotnak tűnik.
$.uastringA böngésző és a rendszer rövid neve, például iPhone Safari vagy Windows Chrome.
$.userobjectA felhasználó, akit az AUTH() jóváhagyott, vagy semmi.
$.languagestringA nyelv, amelyet a LOCALIZE() választott.
$.datatypestringjson, urlencoded, multipart, xml, text vagy binary: a kérés törzsének típusa.
$.responseobjectAmit elküldünk: status, headers és value. Válasz előtt módosítsd a $.response.status és a $.response.headers értékét.
$.req, $.resobjectsA Node.js kérés és válasz.

Válaszoló metódusok

MetódusMit csinálRecept
$.json(value)JSON-nal válaszol.responses
$.jsonstring(text)Olyan szöveggel válaszol, amely már JSON, újabb szerializálás nélkül.controller-completion-and-cache
$.html(text)HTML-lel válaszol.responses
$.plain(text)Egyszerű szöveggel válaszol (a $.text ugyanaz).responses
$.xml(text)XML-lel válaszol.responses
$.empty()204-es állapottal és törzs nélkül válaszol.responses
$.redirect(url, permanent)Átirányít (302, vagy 301, ha a permanent true).responses
$.binary(buffer, type, name)Bájtokkal és tartalomtípussal válaszol.responses
$.file(path, name)Fájlt küld a lemezről.file-download
$.stream(type, stream, name)Olvasható streamet küld.file-download
$.filefs(storage, id)Egy FILESTORAGE fájlját küldi.filestorage
$.image(options)Igény szerint képet hoz létre és küld.images
$.view(name, model)Nézetet renderel a layouttal, és azzal válaszol.views-and-layouts
$.layout(name)Másik layoutot választ a következő $.view()-hoz.view-sections
$.proxy(url)Továbbítja a kérést egy másik URL-re, és annak válaszával válaszol.proxy
$.respond(value)A $.response.output formátumában válaszol (json, ha nincs beállítva).controller-completion-and-cache
$.invalid(value)Hibával válaszol: szöveggel, állapotkóddal, például 404-gyel, vagy ErrorBuilder-rel.actions-crud
$.fallback(code)Egy hibakód oldalával válaszol, az egyéni oldallal, ha létezik a ROUTE('#404').error-pages
$.success(value){ "success": true }-val válaszol; a value hozzáadódik.responses
$.callback(err, value)Hiba esetén $.invalid(err)-rel válaszol, különben $.json(value)-val, vagy $.success()-szel, ha a value undefined. Argumentumok nélkül egy (err, response) függvényt ad vissza, amely ugyanezt teszi.actions-crud
$.successful(fn)Egy (err, a, b, c) függvényt ad vissza: hiba esetén $.invalid(err)-rel válaszol, különben meghívja az fn(a, b, c)-t.controller-completion-and-cache
$.done(arg)Egy (err, response) függvényt ad vissza: hiba esetén $.invalid(err)-rel válaszol, különben a sikeres objektummal.controller-completion-and-cache

Egyéb metódusok

MetódusMit csinálRecept
$.cookie(name, value, expiration)Beolvas egy sütit, vagy ír egyet, ha értéket adsz át.headers-and-cookies
$.csrf()CSRF-tokent hoz létre ennek a kliensnek.csrf-protection
$.hostname(path)Ennek a szervernek a címe: protokoll, host és az átadott útvonal.restbuilder
$.action(name, model)Műveletet futtat ezzel a kéréssel (felhasználó, query és params).calling-actions-from-code
$.transform(name, value, callback)Átalakítást futtat ezzel a kéréssel.transforms
$.authorize(callback)Lefuttatja az AUTH()-ot ehhez a kéréshez, és beállítja a $.user-t; visszahívás nélkül promise-t ad vissza.controller-completion-and-cache
$.notmodified(date)304-gyel válaszol, és true-t ad vissza, ha a kérésben az if-modified-since fejléc ezzel a dátummal szerepel.controller-completion-and-cache
$.httpcache(date)Beállítja a válasz gyorsítótár-fejléceit és a last-modified-et.controller-completion-and-cache
$.clear()Eltávolítja a feltöltés ideiglenes fájljait. A kérés végén úgyis eltávolítja őket a rendszer.file-upload
$.autoclear(false)Megtartja a feltöltött fájlokat a kérés után, hogy később használhasd őket.upload-lifecycle-and-href
$.custom()Közli a keretrendszerrel, hogy te magad válaszolsz a $.res-en keresztül: nem küld semmit.controller-completion-and-cache
$.href(key, value)Használd a QUERIFY() függvényt a hivatkozott receptben látottak szerint, ez a tesztelt natív segéd lekérdezéses hivatkozásokhoz.upload-lifecycle-and-href
$.flush(), $.resume(), $.free(), $.cancel()Belső metódusok: ne hívd őket.

A példa a tulajdonságokkal válaszol, és meghívja azokat a metódusokat, amelyek nem igényelnek előkészítést.

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