ForgeDocumentatie
nl

Documentatie

Introductie Types van Nieuwactie

Total.js 5 · total5@0.0.19 referencevalidationinput Uitgevoerd met Total.js 5

Een definitie is een lijst van name:Type gescheiden door komma's, bijvoorbeeld *email:Email, age:Number. Een * voor de naam maakt het veld verplicht. Hetzelfde formaat wordt gebruikt door input (de body), params, query en output. Het type zet de waarde om: de actie ontvangt de omgezette waarde, niet de verzonden tekst.

De namen van de typen zijn niet hoofdlettergevoelig. Elk type hieronder is gecontroleerd door de waarde uit de tweede kolom te sturen.

TypeVerzonden waardeOntvangen waardeOpmerkingen
String hello helloTekst; spaties aan het begin en einde worden verwijderd.
Text text text Tekst precies zoals die is verzonden.
Email A@B.CZ a@b.czEen geldig e-mailadres, in kleine letters; al het andere wordt geweigerd.
Phone+421 900 123 456+421900123456Een telefoonnummer; spaties worden verwijderd.
URLhttps://totaljs.com/xhttps://totaljs.com/xEen geldige URL; al het andere wordt geweigerd.
Namejohn smithJohn SmithZet elk woord met een hoofdletter.
Capitalizehello big worldHello Big WorldZet elk woord met een hoofdletter.
Capitalize2HELLO big WORLDHello big worldAlleen de eerste letter een hoofdletter, de rest kleine letters.
LowercaseABCabcKleine letters.
UppercaseabcABCHoofdletters.
SearchŽluťoučký Kůňzlutoucki kunKleine letters zonder accenten, om te zoeken.
SafeStringplain textplain textTekst; een waarde met HTML-tags zoals <b> wordt geweigerd.
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.5Een getal; de tekst wordt omgezet.
Float3.143.14Een getal; de tekst wordt omgezet.
Decimal2.52.5Een getal; de tekst wordt omgezet.
Booleantruetruetrue of false; de tekst true wordt omgezet.
Date2026-01-052026-01-05T00:00:00.000ZEen datum. In JSON wordt die als ISO-tekst verzonden.

Andere vormen:

VormVoorbeeldOpmerkingen
[String], [Number]ze_arr:[String]Een array van dat type: elk item wordt omgezet.
{ x:Number, y:String }zg_obj:{ x:Number, y:String }Een genest object, gevalideerd met zijn eigen velden.
String(5)zd_max:String(5)Een tekst van maximaal 5 tekens; een langere tekst wordt geweigerd.

Een waarde die niet bij het type past, wordt geweigerd met status 400 en de naam van het veld in de fout. Deze waarden werden geweigerd bij de controles: SafeString met <b>x</b>, String(5) met tien tekens, een UID met abc en een GUID met not-guid. Het grenswaardenrecept controleert Int, SmallInt, TinyInt, Number2: numeric-schema-boundaries. In deze versie kapt Int niet af: 7.9 blijft 7.9.

UID en GUID accepteren de waarden die UID() en GUID() maken.

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