ForgeDocumentazione
it

Documentazione

Tipi di introduzione di NEWACTION

Total.js 5 · total5@0.0.19 referencevalidationinput Eseguita con Total.js 5

Una definizione è un elenco di name:Type separati da virgole, per esempio *email:Email, age:Number. Un * prima del nome rende il campo obbligatorio. Lo stesso formato è usato da input (il corpo), params, query e output. Il tipo converte il valore: l'azione riceve il valore convertito, non il testo inviato.

I nomi dei tipi non distinguono maiuscole e minuscole. Ogni tipo qui sotto è stato verificato inviando il valore della seconda colonna.

TipoValore inviatoValore ricevutoNote
String hello helloTesto; gli spazi iniziali e finali vengono rimossi.
Text text text Testo mantenuto esattamente come è stato inviato.
Email A@B.CZ a@b.czUn indirizzo email valido, in minuscolo; qualsiasi altra cosa viene rifiutata.
Phone+421 900 123 456+421900123456Un numero di telefono; gli spazi vengono rimossi.
URLhttps://totaljs.com/xhttps://totaljs.com/xUn URL valido; qualsiasi altra cosa viene rifiutata.
Namejohn smithJohn SmithMette in maiuscolo ogni parola.
Capitalizehello big worldHello Big WorldMette in maiuscolo ogni parola.
Capitalize2HELLO big WORLDHello big worldMette in maiuscolo solo la prima lettera e il resto in minuscolo.
LowercaseABCabcMinuscolo.
UppercaseabcABCMaiuscolo.
SearchŽluťoučký Kůňzlutoucki kunMinuscolo senza accenti, per la ricerca.
SafeStringplain textplain textTesto; un valore con tag HTML come <b> viene rifiutato.
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 numero; il testo viene convertito.
Float3.143.14Un numero; il testo viene convertito.
Decimal2.52.5Un numero; il testo viene convertito.
Booleantruetruetrue o false; il testo true viene convertito.
Date2026-01-052026-01-05T00:00:00.000ZUna data. In JSON viene inviata come testo ISO.

Altre forme:

FormaEsempioNote
[String], [Number]ze_arr:[String]Un array di quel tipo: ogni elemento viene convertito.
{ x:Number, y:String }zg_obj:{ x:Number, y:String }Un oggetto annidato, validato con i propri campi.
String(5)zd_max:String(5)Un testo di al massimo 5 caratteri; un testo più lungo viene rifiutato.

Un valore che non corrisponde al tipo viene rifiutato con stato 400 e il nome del campo nell'errore. Questi valori sono stati rifiutati nelle verifiche: SafeString con <b>x</b>, String(5) con dieci caratteri, un UID con abc e un GUID con not-guid. La ricetta dei limiti verifica Int, SmallInt, TinyInt, Number2: numeric-schema-boundaries. In questa versione Int non tronca: 7.9 resta 7.9.

UID e GUID accettano i valori creati da UID() e 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() });
}