ForgeDokumentáció
hu

Dokumentáció

A NEWACTION lehetőségek és a cselekvés tárgyát megkapja

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

A NEWACTION(name, options) műveletet deklarál. A name az azonosítója (Users/insert): az útvonalak a --> *Users/insert formával használják, a kódod pedig az ACTION('Users/insert', payload) hívással.

Beállítások

BeállításÉrtékMit csinál
nameszövegA művelet leírása; $.name néven is elérhető.
actionfunction($, model)A művelet kódja. A model az érvényesített bemenet.
inputszövegA törzs mezői name:Type alakban, vesszővel elválasztva; a név előtti * kötelezővé teszi. Lásd a bemeneti típusokról szóló oldalt.
outputszövegA válasz mezői; a fel nem sorolt mezők eltávolításra kerülnek.
paramsszövegAz útvonal {name} szegmensei, az input-hoz hasonlóan érvényesítve.
queryszövegA lekérdezési karakterlánc, az input-hoz hasonlóan érvényesítve.
partialtrueCsak az elküldött mezők jutnak el a művelethez. PATCH-hez használd.
usertrue vagy falseA true 401-gyel válaszol, ha nincs bejelentkezett felhasználó; a false csak a névtelen kéréseket fogadja el.
permissionsszöveg vagy tömb'read,write': a felhasználónak szüksége van az egyikre (vagy szuperadminisztrátornak kell lennie).
routeszövegItt deklarálja a művelet útvonalát: 'GET /products/', vagy true egy API útvonalhoz.
middlewareszövegA művelet előtt futó middleware nevei, szóközzel vagy vesszővel elválasztva.
timeoutezredmásodpercHa a művelet nem válaszol időben, a kérés a Timeout. hibával meghiúsul.
cachetrue vagy egy objektumEgy akció eredményét tárold a CACHE segítségével.
configobjektumÉrtékek, amelyeket a művelet a $.config-ból olvas.
audittextSikeres befejezés után eseményt rögzít; a külön recept ellenőrzi a működés határait. action-audit
csrf, encrypt, compress, publishaction-transport-boundaries
sa, sutrueaction-hooks-and-admin
oninput, onoutputfunctionaction-hooks-and-admin
extendpathaction-hooks-and-admin

Egy művelet $ objektuma

TagMi ez
$.query, $.paramsAz érvényesített lekérdezési karakterlánc és az útvonal szegmensei.
$.payloadAz érvényesített bemenet; ugyanaz az objektum, mint az action második argumentuma.
$.userA bejelentkezett felhasználó.
$.configA config beállítás.
$.name, $.idA name beállítás és a művelet azonosítója.
$.controllerAz útvonal $-ja, ha a műveletet útvonalból hívták, így a $.controller.body a nyers törzs. Nem létezik, ha a műveletet az ACTION()-nel hívják.
$.callback(value)Értékkel válaszol; az output szűri. Argumentumok nélkül egy (err, response) függvényt ad vissza.
$.success(value){ success: true }-val válaszol.
$.invalid(error)Hibával válaszol: szöveggel, állapotkóddal vagy ErrorBuilder-rel.
$.done(arg), $.successful(fn)Visszahívásokat adnak vissza olyan függvényekhez, amelyek az első argumentumban jeleznek hibát.
$.cookie(name, value, expiration)Beolvassa vagy beírja a kérés egy sütijét.
$.redirect(url)Átirányítja a kérést.
$.output(name)Kiválasztja, hogyan válaszol egy útvonal: json, html, xml, text, redirect, binary, jsonstring, empty vagy file.
$.unauthorized(...permissions)401-gyel válaszol, és true-t ad vissza, ha a felhasználónak egyik jogosultsága sincs.
$.action(name, payload)Egy másik műveletet futtat ugyanazzal a kéréssel.
$.hostname(path)Ennek a szervernek a címe.
definitions/options.js
MIDDLEWARE('tag', function($, next) {
	$.response.headers['x-tag'] = 'on';
	next();
});

var counter = { cached: 0 };
MAIN.counter = counter;

NEWACTION('Options/named', {
	name: 'The name',
	config: { limit: 3 },
	action: function($) {
		$.callback({ name: $.name, id: $.id, limit: $.config.limit });
	}
});

NEWACTION('Options/guarded', {
	name: 'Needs a user',
	user: true,
	permissions: 'read',
	action: function($) {
		$.success();
	}
});

NEWACTION('Options/slow', {
	name: 'Never answers',
	timeout: 300,
	action: function($) {}
});

NEWACTION('Options/cached', {
	name: 'The cache option',
	query: 'page:Number',
	cache: { expire: '1 minute', query: 'page' },
	action: function($) {
		counter.cached++;
		$.callback({ page: $.query.page, runs: counter.cached });
	}
});

NEWACTION('Options/routed', {
	name: 'Declares its own route',
	route: 'GET /routed/ #tag',
	action: function($) {
		$.callback({ routed: true });
	}
});

NEWACTION('Options/output', {
	name: 'Chooses how to answer',
	action: function($) {
		$.output('plain');
		$.callback('plain text');
	}
});

AUTH(function($) {
	if ($.headers['x-user'])
		$.success({ id: '1', permissions: $.headers['x-user'].split(',') });
	else
		$.invalid();
});
controllers/options.js
exports.install = function() {
	ROUTE('GET /named/ --> *Options/named');
	ROUTE('GET /guarded/ --> *Options/guarded');
	ROUTE('GET /slow/ --> *Options/slow');
	ROUTE('GET /cached/ --> *Options/cached');
	ROUTE('GET /output/ --> *Options/output');
};