ForgeΤεκμηρίωση
el

Τεκμηρίωση

Εισαγωγικοί τύποι NEWACTION

Total.js 5 · total5@0.0.19 referencevalidationinput Εκτελέστηκε με το Total.js 5

Ένας ορισμός είναι μια λίστα name:Type χωρισμένων με κόμματα, για παράδειγμα *email:Email, age:Number. Ένα * πριν από το όνομα κάνει το πεδίο υποχρεωτικό. Η ίδια μορφή χρησιμοποιείται από τα input (το σώμα), params, query και output. Ο τύπος μετατρέπει την τιμή: η ενέργεια λαμβάνει τη μετατραπείσα τιμή, όχι το κείμενο που στάλθηκε.

Τα ονόματα των τύπων δεν κάνουν διάκριση πεζών και κεφαλαίων. Κάθε τύπος παρακάτω ελέγχθηκε στέλνοντας την τιμή της δεύτερης στήλης.

ΤύποςΤιμή που στάλθηκεΤιμή που λήφθηκεΣημειώσεις
String hello helloΚείμενο· τα κενά στην αρχή και στο τέλος αφαιρούνται.
Text text text Κείμενο που διατηρείται ακριβώς όπως στάλθηκε.
Email A@B.CZ a@b.czΜια έγκυρη διεύθυνση email, με πεζά· οτιδήποτε άλλο απορρίπτεται.
Phone+421 900 123 456+421900123456Ένας αριθμός τηλεφώνου· τα κενά αφαιρούνται.
URLhttps://totaljs.com/xhttps://totaljs.com/xΈνα έγκυρο URL· οτιδήποτε άλλο απορρίπτεται.
Namejohn smithJohn SmithΚεφαλαίο το πρώτο γράμμα κάθε λέξης.
Capitalizehello big worldHello Big WorldΚεφαλαίο το πρώτο γράμμα κάθε λέξης.
Capitalize2HELLO big WORLDHello big worldΚεφαλαίο μόνο το πρώτο γράμμα και πεζά τα υπόλοιπα.
LowercaseABCabcΠεζά.
UppercaseabcABCΚεφαλαία.
SearchŽluťoučký Kůňzlutoucki kunΠεζά χωρίς τόνους, για αναζήτηση.
SafeStringplain textplain textΚείμενο· μια τιμή με ετικέτες HTML όπως <b> απορρίπτεται.
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.5Ένας αριθμός· το κείμενο μετατρέπεται.
Float3.143.14Ένας αριθμός· το κείμενο μετατρέπεται.
Decimal2.52.5Ένας αριθμός· το κείμενο μετατρέπεται.
Booleantruetruetrue ή false· το κείμενο true μετατρέπεται.
Date2026-01-052026-01-05T00:00:00.000ZΜια ημερομηνία. Στο JSON στέλνεται ως κείμενο ISO.

Άλλες μορφές:

ΜορφήΠαράδειγμαΣημειώσεις
[String], [Number]ze_arr:[String]Ένας πίνακας αυτού του τύπου: κάθε στοιχείο μετατρέπεται.
{ x:Number, y:String }zg_obj:{ x:Number, y:String }Ένα εμφωλευμένο αντικείμενο, που επικυρώνεται με τα δικά του πεδία.
String(5)zd_max:String(5)Ένα κείμενο το πολύ 5 χαρακτήρων· ένα μακρύτερο κείμενο απορρίπτεται.

Μια τιμή που δεν ταιριάζει με τον τύπο απορρίπτεται με κατάσταση 400 και το όνομα του πεδίου στο σφάλμα. Αυτές οι τιμές απορρίφθηκαν στους ελέγχους: SafeString με <b>x</b>, String(5) με δέκα χαρακτήρες, ένα UID με abc και ένα GUID με not-guid. Η συνταγή ορίων ελέγχει Int, SmallInt, TinyInt, Number2: numeric-schema-boundaries. Σε αυτή την έκδοση το Int δεν περικόπτει: το 7.9 μένει 7.9.

Τα UID και GUID δέχονται τις τιμές που δημιουργούν τα UID() και 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() });
}