ForgeDokumentácia
sk

Dokumentácia

Úvodné typy nováčikov

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

Definícia je zoznam name:Type oddelený čiarkami, napríklad *email:Email, age:Number. * pred názvom robí pole povinným. Rovnaký formát sa používa v input (telo), params, query a output. Typ konvertuje hodnotu: akcia dostane skonvertovanú hodnotu, nie text, ktorý bol odoslaný.

Názvy typov nerozlišujú veľké a malé písmená. Každý typ nižšie bol overený odoslaním hodnoty z druhého stĺpca.

TypOdoslaná hodnotaPrijatá hodnotaPoznámky
String hello helloText; medzery na začiatku a na konci sa odstránia.
Text text text Text zachovaný presne tak, ako bol odoslaný.
Email A@B.CZ a@b.czPlatná e-mailová adresa, malými písmenami; všetko ostatné sa odmietne.
Phone+421 900 123 456+421900123456Telefónne číslo; medzery sa odstránia.
URLhttps://totaljs.com/xhttps://totaljs.com/xPlatná URL; všetko ostatné sa odmietne.
Namejohn smithJohn SmithVeľké písmeno na začiatku každého slova.
Capitalizehello big worldHello Big WorldVeľké písmeno na začiatku každého slova.
Capitalize2HELLO big WORLDHello big worldVeľké písmeno iba na začiatku a zvyšok malými písmenami.
LowercaseABCabcMalé písmená.
UppercaseabcABCVeľké písmená.
SearchŽluťoučký Kůňzlutoucki kunMalé písmená bez diakritiky, na vyhľadávanie.
SafeStringplain textplain textText; hodnota s HTML značkami ako <b> sa odmietne.
Color#FF0000#FF0000schema-enums-and-formats
Base64SGVsbG8=SGVsbG8=schema-enums-and-formats
Zip8110181101schema-enums-and-formats
Iconti ti-hometi ti-homeschema-enums-and-formats
Number12.512.5Číslo; text sa skonvertuje.
Float3.143.14Číslo; text sa skonvertuje.
Decimal2.52.5Číslo; text sa skonvertuje.
Booleantruetruetrue alebo false; text true sa skonvertuje.
Date2026-01-052026-01-05T00:00:00.000ZDátum. V JSON sa odosiela ako text ISO.

Ďalšie formy:

FormaPríkladPoznámky
[String], [Number]ze_arr:[String]Pole daného typu: každá položka sa skonvertuje.
{ x:Number, y:String }zg_obj:{ x:Number, y:String }Vnorený objekt validovaný vlastnými poliami.
String(5)zd_max:String(5)Text s najviac 5 znakmi; dlhší text sa odmietne.

Hodnota, ktorá nezodpovedá typu, sa odmietne so stavom 400 a názvom poľa v chybe. V kontrolách sa odmietli tieto hodnoty: SafeString s <b>x</b>, String(5) s desiatimi znakmi, UID s abc a GUID s not-guid. Recept hraničných hodnôt overuje Int, SmallInt, TinyInt, Number2: numeric-schema-boundaries. V tejto verzii Int neorezáva: 7.9 zostane 7.9.

UID a GUID akceptujú hodnoty, ktoré vytvárajú UID() a GUID().

definitions/types.js
NEWACTION('Types/all', {
	name: 'Every type',
	input: 'a_string:String, b_text:Text, c_email:Email, d_phone:Phone, e_url:URL, f_name:Name, g_capitalize:Capitalize, h_capitalize2:Capitalize2, i_lowercase:Lowercase, j_uppercase:Uppercase, k_search:Search, l_safestring:SafeString, m_color:Color, n_base64:Base64, o_zip:Zip, p_icon:Icon, q_number:Number, r_float:Float, s_decimal:Decimal, t_boolean:Boolean, u_date:Date, ze_arr:[String], zf_nums:[Number], zg_obj:{ x:Number, y:String }, zd_max:String(5)',
	action: function($, model) {
		$.callback(model);
	}
});

NEWACTION('Types/ids', {
	name: 'UID and GUID',
	input: '*id:UID, *key:GUID',
	action: function($, model) {
		$.callback(model);
	}
});
controllers/types.js
exports.install = function() {
	ROUTE('POST /types/ @json --> *Types/all');
	ROUTE('POST /ids/ @json --> *Types/ids');
	ROUTE('GET /newids/', ids);
};

function ids($) {
	$.json({ id: UID(), key: GUID() });
}