ForgeDocumentation
fr

Documentation

Les types d'entrée de la nouvelle

Total.js 5 · total5@0.0.19 referencevalidationinput Exécutée avec Total.js 5

Une définition est une liste de name:Type séparés par des virgules, par exemple *email:Email, age:Number. Un * avant le nom rend le champ obligatoire. Le même format est utilisé par input (le corps), params, query et output. Le type convertit la valeur : l'action reçoit la valeur convertie, pas le texte envoyé.

Les noms des types ne sont pas sensibles à la casse. Chaque type ci-dessous a été vérifié en envoyant la valeur de la deuxième colonne.

TypeValeur envoyéeValeur reçueRemarques
String hello helloTexte ; les espaces au début et à la fin sont supprimés.
Text text text Texte conservé exactement tel qu'il a été envoyé.
Email A@B.CZ a@b.czUne adresse e-mail valide, en minuscules ; tout le reste est rejeté.
Phone+421 900 123 456+421900123456Un numéro de téléphone ; les espaces sont supprimés.
URLhttps://totaljs.com/xhttps://totaljs.com/xUne URL valide ; tout le reste est rejeté.
Namejohn smithJohn SmithMet chaque mot en majuscule initiale.
Capitalizehello big worldHello Big WorldMet chaque mot en majuscule initiale.
Capitalize2HELLO big WORLDHello big worldMet seulement la première lettre en majuscule et le reste en minuscules.
LowercaseABCabcMinuscules.
UppercaseabcABCMajuscules.
SearchŽluťoučký Kůňzlutoucki kunMinuscules sans accents, pour la recherche.
SafeStringplain textplain textTexte ; une valeur contenant des balises HTML comme <b> est rejetée.
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 nombre ; le texte est converti.
Float3.143.14Un nombre ; le texte est converti.
Decimal2.52.5Un nombre ; le texte est converti.
Booleantruetruetrue ou false ; le texte true est converti.
Date2026-01-052026-01-05T00:00:00.000ZUne date. En JSON, elle est envoyée sous forme de texte ISO.

Autres formes :

FormeExempleRemarques
[String], [Number]ze_arr:[String]Un tableau de ce type : chaque élément est converti.
{ x:Number, y:String }zg_obj:{ x:Number, y:String }Un objet imbriqué, validé avec ses propres champs.
String(5)zd_max:String(5)Un texte d'au plus 5 caractères ; un texte plus long est rejeté.

Une valeur qui ne correspond pas au type est rejetée avec le statut 400 et le nom du champ dans l'erreur. Ces valeurs ont été rejetées lors des vérifications : SafeString avec <b>x</b>, String(5) avec dix caractères, un UID avec abc et un GUID avec not-guid. La recette des limites vérifie Int, SmallInt, TinyInt, Number2: numeric-schema-boundaries. Dans cette version, Int ne tronque pas : 7.9 reste 7.9.

UID et GUID acceptent les valeurs créées par UID() et 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() });
}