ForgeDokumentacja
pl

Dokumentacja

Obiekt $ dla handlowca Total.js 5

Total.js 5 · total5@0.0.19 referencecontrollerresponses Uruchomiono z Total.js 5

Obsługa trasy otrzymuje jeden obiekt, zapisywany na tej stronie jako $. Opisuje żądanie i odpowiada na nie. Odpowiadaj tylko raz: po $.json(), $.html() lub innej odpowiedzi żądanie jest zakończone.

Właściwości

WłaściwośćTypCzym jest
$.urlstringŚcieżka żądania, bez ciągu zapytania.
$.methodstringGET, POST...
$.queryobjectCiąg zapytania, sparsowany.
$.paramsobjectSegmenty {name} trasy.
$.bodyobjectTreść, sparsowana według typu zawartości (JSON, formularz URL-encoded, XML lub pola multipart).
$.filesarrayPrzesłane pliki żądania multipart.
$.headersobjectNagłówki żądania, z nazwami małymi literami.
$.ipstringAdres IP; pierwszy adres z x-forwarded-for, gdy nagłówek istnieje.
$.hoststringNagłówek host.
$.referrerstringNagłówek referer.
$.protocolstringhttp lub https (także gdy proxy tak wskazuje w x-forwarded-proto).
$.extstringRozszerzenie adresu URL, bez kropki ($.extension to to samo).
$.xhrbooleantrue, gdy nagłówek x-requested-with ma wartość XMLHttpRequest.
$.mobilebooleantrue, gdy user agent wygląda na przeglądarkę mobilną.
$.robotbooleantrue, gdy user agent wygląda na robota indeksującego.
$.uastringKrótka nazwa przeglądarki i systemu, np. iPhone Safari lub Windows Chrome.
$.userobjectUżytkownik zatwierdzony przez AUTH() lub nic.
$.languagestringJęzyk wybrany przez LOCALIZE().
$.datatypestringjson, urlencoded, multipart, xml, text lub binary: typ treści żądania.
$.responseobjectTo, co zostanie wysłane: status, headers i value. Zmień $.response.status i $.response.headers przed odpowiedzią.
$.req, $.resobjectsŻądanie i odpowiedź Node.js.

Metody, które odpowiadają

MetodaCo robiPrzepis
$.json(value)Odpowiada JSON-em.responses
$.jsonstring(text)Odpowiada tekstem, który już jest JSON-em, bez ponownej serializacji.controller-completion-and-cache
$.html(text)Odpowiada HTML-em.responses
$.plain(text)Odpowiada zwykłym tekstem ($.text to to samo).responses
$.xml(text)Odpowiada XML-em.responses
$.empty()Odpowiada statusem 204 i bez treści.responses
$.redirect(url, permanent)Przekierowuje (302, lub 301, gdy permanent ma wartość true).responses
$.binary(buffer, type, name)Odpowiada bajtami i typem zawartości.responses
$.file(path, name)Wysyła plik z dysku.file-download
$.stream(type, stream, name)Wysyła strumień do odczytu.file-download
$.filefs(storage, id)Wysyła plik z FILESTORAGE.filestorage
$.image(options)Tworzy i wysyła obraz na żądanie.images
$.view(name, model)Renderuje widok z layoutem i odpowiada nim.views-and-layouts
$.layout(name)Wybiera inny layout dla następnego $.view().view-sections
$.proxy(url)Przekazuje żądanie pod inny adres URL i odpowiada jego odpowiedzią.proxy
$.respond(value)Odpowiada w formacie $.response.output (json, gdy nie ustawiono).controller-completion-and-cache
$.invalid(value)Odpowiada błędem: tekstem, kodem statusu, takim jak 404, lub ErrorBuilder.actions-crud
$.fallback(code)Odpowiada stroną kodu błędu, własną, gdy istnieje ROUTE('#404').error-pages
$.success(value)Odpowiada { "success": true }; value jest do niego dodawane.responses
$.callback(err, value)Przy błędzie odpowiada $.invalid(err), w przeciwnym razie $.json(value), lub $.success(), gdy value to undefined. Bez argumentów zwraca funkcję (err, response), która robi to samo.actions-crud
$.successful(fn)Zwraca funkcję (err, a, b, c): przy błędzie odpowiada $.invalid(err), w przeciwnym razie wywołuje fn(a, b, c).controller-completion-and-cache
$.done(arg)Zwraca funkcję (err, response): przy błędzie odpowiada $.invalid(err), w przeciwnym razie obiektem sukcesu.controller-completion-and-cache

Inne metody

MetodaCo robiPrzepis
$.cookie(name, value, expiration)Odczytuje ciasteczko lub zapisuje je, gdy przekażesz wartość.headers-and-cookies
$.csrf()Tworzy token CSRF dla tego klienta.csrf-protection
$.hostname(path)Adres tego serwera: protokół, host i przekazana ścieżka.restbuilder
$.action(name, model)Uruchamia akcję z tym żądaniem (użytkownik, query i params).calling-actions-from-code
$.transform(name, value, callback)Uruchamia transformację z tym żądaniem.transforms
$.authorize(callback)Uruchamia AUTH() dla tego żądania i ustawia $.user; bez callbacku zwraca promise.controller-completion-and-cache
$.notmodified(date)Odpowiada 304 i zwraca true, gdy żądanie ma nagłówek if-modified-since z tą datą.controller-completion-and-cache
$.httpcache(date)Ustawia nagłówki pamięci podręcznej i last-modified odpowiedzi.controller-completion-and-cache
$.clear()Usuwa tymczasowe pliki przesyłania. I tak są usuwane po zakończeniu żądania.file-upload
$.autoclear(false)Zachowuje przesłane pliki po żądaniu, abyś mógł ich użyć później.upload-lifecycle-and-href
$.custom()Mówi frameworkowi, że odpowiadasz samodzielnie przez $.res: nic nie wyśle.controller-completion-and-cache
$.href(key, value)Użyj QUERIFY() jak w linkowanym przepisie, przetestowanego natywnego helpera do linków z zapytaniem.upload-lifecycle-and-href
$.flush(), $.resume(), $.free(), $.cancel()Metody wewnętrzne: nie wywołuj ich.

Przykład odpowiada właściwościami i wywołuje metody, które nie wymagają przygotowania.

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