ForgeDokumentation
sv

Dokumentation

Introduktionstyper för nyhet

Total.js 5 · total5@0.0.19 referencevalidationinput Körd med Total.js 5

En definition är en lista med name:Type åtskilda av kommatecken, till exempel *email:Email, age:Number. En * före namnet gör fältet obligatoriskt. Samma format används av input (kroppen), params, query och output. Typen konverterar värdet: åtgärden får det konverterade värdet, inte texten som skickades.

Typernas namn skiljer inte på stora och små bokstäver. Varje typ nedan kontrollerades genom att skicka värdet i den andra kolumnen.

TypSkickat värdeMottaget värdeAnmärkningar
String hello helloText; inledande och avslutande mellanslag tas bort.
Text text text Text som behålls exakt som den skickades.
Email A@B.CZ a@b.czEn giltig e-postadress, med små bokstäver; allt annat avvisas.
Phone+421 900 123 456+421900123456Ett telefonnummer; mellanslag tas bort.
URLhttps://totaljs.com/xhttps://totaljs.com/xEn giltig URL; allt annat avvisas.
Namejohn smithJohn SmithGer varje ord stor begynnelsebokstav.
Capitalizehello big worldHello Big WorldGer varje ord stor begynnelsebokstav.
Capitalize2HELLO big WORLDHello big worldStor bokstav bara först, resten med små bokstäver.
LowercaseABCabcSmå bokstäver.
UppercaseabcABCStora bokstäver.
SearchŽluťoučký Kůňzlutoucki kunSmå bokstäver utan accenter, för sökning.
SafeStringplain textplain textText; ett värde med HTML-taggar som <b> avvisas.
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.5Ett tal; texten konverteras.
Float3.143.14Ett tal; texten konverteras.
Decimal2.52.5Ett tal; texten konverteras.
Booleantruetruetrue eller false; texten true konverteras.
Date2026-01-052026-01-05T00:00:00.000ZEtt datum. I JSON skickas det som ISO-text.

Andra former:

FormExempelAnmärkningar
[String], [Number]ze_arr:[String]En array av den typen: varje element konverteras.
{ x:Number, y:String }zg_obj:{ x:Number, y:String }Ett kapslat objekt, validerat med sina egna fält.
String(5)zd_max:String(5)En text på högst 5 tecken; en längre text avvisas.

Ett värde som inte passar typen avvisas med status 400 och fältets namn i felet. Dessa värden avvisades i kontrollerna: SafeString med <b>x</b>, String(5) med tio tecken, en UID med abc och en GUID med not-guid. Receptet för gränsvärden verifierar Int, SmallInt, TinyInt, Number2: numeric-schema-boundaries. I den här versionen avrundar Int inte: 7.9 förblir 7.9.

UID och GUID accepterar värdena som UID() och GUID() skapar.

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