ForgeDokumentation
de

Dokumentation

Input-Typen der Neuaufnahme

Total.js 5 · total5@0.0.19 referencevalidationinput Mit Total.js 5 ausgeführt

Eine Definition ist eine durch Kommas getrennte Liste von name:Type, zum Beispiel *email:Email, age:Number. Ein * vor dem Namen macht das Feld zur Pflicht. Dasselbe Format gilt für input (den Body), params, query und output. Der Typ wandelt den Wert um: Die Action erhält den umgewandelten Wert, nicht den gesendeten Text.

Die Namen der Typen unterscheiden nicht zwischen Groß- und Kleinschreibung. Jeder Typ unten wurde geprüft, indem der Wert der zweiten Spalte gesendet wurde.

TypGesendeter WertEmpfangener WertHinweise
String hello helloText; Leerzeichen am Anfang und am Ende werden entfernt.
Text text text Text, genau so beibehalten, wie er gesendet wurde.
Email A@B.CZ a@b.czEine gültige E-Mail-Adresse in Kleinbuchstaben; alles andere wird abgelehnt.
Phone+421 900 123 456+421900123456Eine Telefonnummer; Leerzeichen werden entfernt.
URLhttps://totaljs.com/xhttps://totaljs.com/xEine gültige URL; alles andere wird abgelehnt.
Namejohn smithJohn SmithSchreibt jedes Wort groß.
Capitalizehello big worldHello Big WorldSchreibt jedes Wort groß.
Capitalize2HELLO big WORLDHello big worldSchreibt nur den ersten Buchstaben groß und den Rest klein.
LowercaseABCabcKleinbuchstaben.
UppercaseabcABCGroßbuchstaben.
SearchŽluťoučký Kůňzlutoucki kunKleinbuchstaben ohne Akzente, zum Suchen.
SafeStringplain textplain textText; ein Wert mit HTML-Tags wie <b> wird abgelehnt.
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.5Eine Zahl; der Text wird umgewandelt.
Float3.143.14Eine Zahl; der Text wird umgewandelt.
Decimal2.52.5Eine Zahl; der Text wird umgewandelt.
Booleantruetruetrue oder false; der Text true wird umgewandelt.
Date2026-01-052026-01-05T00:00:00.000ZEin Datum. In JSON wird es als ISO-Text gesendet.

Weitere Formen:

FormBeispielHinweise
[String], [Number]ze_arr:[String]Ein Array dieses Typs: Jedes Element wird umgewandelt.
{ x:Number, y:String }zg_obj:{ x:Number, y:String }Ein verschachteltes Objekt, mit eigenen Feldern validiert.
String(5)zd_max:String(5)Ein Text mit höchstens 5 Zeichen; ein längerer Text wird abgelehnt.

Ein Wert, der nicht zum Typ passt, wird mit Status 400 und dem Namen des Feldes im Fehler abgelehnt. In den Prüfungen wurden diese Werte abgelehnt: SafeString mit <b>x</b>, String(5) mit zehn Zeichen, eine UID mit abc und eine GUID mit not-guid. Das Grenzwert-Rezept prüft Int, SmallInt, TinyInt, Number2: numeric-schema-boundaries. In dieser Version schneidet Int nicht ab: 7.9 bleibt 7.9.

UID und GUID akzeptieren die Werte, die UID() und GUID() erzeugen.

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