ForgeДокументация
bg

Документация

Входни видове 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Валиден имейл адрес, с малки букви; всичко друго се отхвърля.
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() });
}