ForgeDokumentacja
pl

Dokumentacja

Wprowadzenie typów nowości

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

Definicja to lista name:Type oddzielonych przecinkami, na przykład *email:Email, age:Number. * przed nazwą czyni pole wymaganym. Ten sam format jest używany w input (treść), params, query i output. Typ konwertuje wartość: akcja otrzymuje skonwertowaną wartość, a nie wysłany tekst.

Nazwy typów nie rozróżniają wielkości liter. Każdy typ poniżej sprawdzono, wysyłając wartość z drugiej kolumny.

TypWysłana wartośćOtrzymana wartośćUwagi
String hello helloTekst; spacje na początku i na końcu są usuwane.
Text text text Tekst zachowany dokładnie tak, jak został wysłany.
Email A@B.CZ a@b.czPoprawny adres e-mail, małymi literami; wszystko inne jest odrzucane.
Phone+421 900 123 456+421900123456Numer telefonu; spacje są usuwane.
URLhttps://totaljs.com/xhttps://totaljs.com/xPoprawny URL; wszystko inne jest odrzucane.
Namejohn smithJohn SmithZamienia pierwszą literę każdego słowa na wielką.
Capitalizehello big worldHello Big WorldZamienia pierwszą literę każdego słowa na wielką.
Capitalize2HELLO big WORLDHello big worldWielka tylko pierwsza litera, reszta małymi.
LowercaseABCabcMałe litery.
UppercaseabcABCWielkie litery.
SearchŽluťoučký Kůňzlutoucki kunMałe litery bez znaków diakrytycznych, do wyszukiwania.
SafeStringplain textplain textTekst; wartość ze znacznikami HTML, takimi jak <b>, jest odrzucana.
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.5Liczba; tekst jest konwertowany.
Float3.143.14Liczba; tekst jest konwertowany.
Decimal2.52.5Liczba; tekst jest konwertowany.
Booleantruetruetrue lub false; tekst true jest konwertowany.
Date2026-01-052026-01-05T00:00:00.000ZData. W JSON jest wysyłana jako tekst ISO.

Inne formy:

FormaPrzykładUwagi
[String], [Number]ze_arr:[String]Tablica tego typu: każdy element jest konwertowany.
{ x:Number, y:String }zg_obj:{ x:Number, y:String }Zagnieżdżony obiekt, walidowany własnymi polami.
String(5)zd_max:String(5)Tekst o długości najwyżej 5 znaków; dłuższy tekst jest odrzucany.

Wartość, która nie pasuje do typu, jest odrzucana ze statusem 400 i nazwą pola w błędzie. W sprawdzeniach odrzucono te wartości: SafeString z <b>x</b>, String(5) z dziesięcioma znakami, UID z abc i GUID z not-guid. Przepis dotyczący granic sprawdza Int, SmallInt, TinyInt, Number2: numeric-schema-boundaries. W tej wersji Int nie obcina: 7.9 pozostaje 7.9.

UID i GUID akceptują wartości tworzone przez 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() });
}