Εισαγωγικοί τύποι NEWACTION
Ένας ορισμός είναι μια λίστα 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 | Ένας αριθμός τηλεφώνου· τα κενά αφαιρούνται. |
URL | https://totaljs.com/x | https://totaljs.com/x | Ένα έγκυρο URL· οτιδήποτε άλλο απορρίπτεται. |
Name | john smith | John Smith | Κεφαλαίο το πρώτο γράμμα κάθε λέξης. |
Capitalize | hello big world | Hello Big World | Κεφαλαίο το πρώτο γράμμα κάθε λέξης. |
Capitalize2 | HELLO big WORLD | Hello big world | Κεφαλαίο μόνο το πρώτο γράμμα και πεζά τα υπόλοιπα. |
Lowercase | ABC | abc | Πεζά. |
Uppercase | abc | ABC | Κεφαλαία. |
Search | Žluťoučký Kůň | zlutoucki kun | Πεζά χωρίς τόνους, για αναζήτηση. |
SafeString | plain text | plain text | Κείμενο· μια τιμή με ετικέτες HTML όπως <b> απορρίπτεται. |
Color | #FF0000 | #FF0000 | schema-enums-and-formats |
Base64 | SGVsbG8= | SGVsbG8= | schema-enums-and-formats |
Zip | 81101 | 81101 | schema-enums-and-formats |
Icon | ti ti-home | ti ti-home | schema-enums-and-formats |
Number | 12.5 | 12.5 | Ένας αριθμός· το κείμενο μετατρέπεται. |
Float | 3.14 | 3.14 | Ένας αριθμός· το κείμενο μετατρέπεται. |
Decimal | 2.5 | 2.5 | Ένας αριθμός· το κείμενο μετατρέπεται. |
Boolean | true | true | true ή false· το κείμενο true μετατρέπεται. |
Date | 2026-01-05 | 2026-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().
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);
}
});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() });
}