ForgeDocumentație
ro

Documentație

Tipuri de introducere pentru neacțiune

Total.js 5 · total5@0.0.19 referencevalidationinput Executată cu Total.js 5

O definiție este o listă de name:Type separate prin virgule, de exemplu *email:Email, age:Number. Un * înaintea numelui face câmpul obligatoriu. Același format este folosit de input (corpul), params, query și output. Tipul convertește valoarea: acțiunea primește valoarea convertită, nu textul trimis.

Numele tipurilor nu fac diferența între majuscule și minuscule. Fiecare tip de mai jos a fost verificat trimițând valoarea din a doua coloană.

TipValoare trimisăValoare primităNote
String hello helloText; spațiile de la început și de la sfârșit sunt eliminate.
Text text text Text păstrat exact așa cum a fost trimis.
Email A@B.CZ a@b.czO adresă de e-mail validă, cu litere mici; orice altceva este respins.
Phone+421 900 123 456+421900123456Un număr de telefon; spațiile sunt eliminate.
URLhttps://totaljs.com/xhttps://totaljs.com/xUn URL valid; orice altceva este respins.
Namejohn smithJohn SmithPune cu majusculă fiecare cuvânt.
Capitalizehello big worldHello Big WorldPune cu majusculă fiecare cuvânt.
Capitalize2HELLO big WORLDHello big worldMajusculă doar prima literă, restul litere mici.
LowercaseABCabcLitere mici.
UppercaseabcABCLitere mari.
SearchŽluťoučký Kůňzlutoucki kunLitere mici fără diacritice, pentru căutare.
SafeStringplain textplain textText; o valoare cu etichete HTML precum <b> este respinsă.
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.5Un număr; textul este convertit.
Float3.143.14Un număr; textul este convertit.
Decimal2.52.5Un număr; textul este convertit.
Booleantruetruetrue sau false; textul true este convertit.
Date2026-01-052026-01-05T00:00:00.000ZO dată. În JSON este trimisă ca text ISO.

Alte forme:

FormăExempluNote
[String], [Number]ze_arr:[String]Un array de acel tip: fiecare element este convertit.
{ x:Number, y:String }zg_obj:{ x:Number, y:String }Un obiect imbricat, validat cu propriile câmpuri.
String(5)zd_max:String(5)Un text de cel mult 5 caractere; un text mai lung este respins.

O valoare care nu se potrivește cu tipul este respinsă cu statusul 400 și numele câmpului în eroare. Aceste valori au fost respinse în verificări: SafeString cu <b>x</b>, String(5) cu zece caractere, un UID cu abc și un GUID cu not-guid. Rețeta limitelor verifică Int, SmallInt, TinyInt, Number2: numeric-schema-boundaries. În această versiune Int nu trunchiază: 7.9 rămâne 7.9.

UID și GUID acceptă valorile create de UID() și 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() });
}