ForgeDocumentación
es

Documentación

Tipos de entrada de las acciones

Total.js 5 · total5@0.0.19 referencevalidationinput Ejecutada con Total.js 5

Una definición es una lista de name:Type separados por comas, por ejemplo *email:Email, age:Number. Un * antes del nombre hace el campo obligatorio. El mismo formato se usa en input (el cuerpo), params, query y output. El tipo convierte el valor: la acción recibe el valor convertido, no el texto que se envió.

Los nombres de los tipos no distinguen mayúsculas de minúsculas. Cada tipo de abajo se comprobó enviando el valor de la segunda columna.

TipoValor enviadoValor recibidoNotas
String hello helloTexto; se eliminan los espacios al principio y al final.
Text text text Texto conservado exactamente como se envió.
Email A@B.CZ a@b.czUna dirección de correo válida, en minúsculas; cualquier otra cosa se rechaza.
Phone+421 900 123 456+421900123456Un número de teléfono; se eliminan los espacios.
URLhttps://totaljs.com/xhttps://totaljs.com/xUna URL válida; cualquier otra cosa se rechaza.
Namejohn smithJohn SmithPone en mayúscula cada palabra.
Capitalizehello big worldHello Big WorldPone en mayúscula cada palabra.
Capitalize2HELLO big WORLDHello big worldPone en mayúscula solo la primera letra y el resto en minúsculas.
LowercaseABCabcMinúsculas.
UppercaseabcABCMayúsculas.
SearchŽluťoučký Kůňzlutoucki kunMinúsculas sin acentos, para buscar.
SafeStringplain textplain textTexto; un valor con etiquetas HTML como <b> se rechaza.
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 número; el texto se convierte.
Float3.143.14Un número; el texto se convierte.
Decimal2.52.5Un número; el texto se convierte.
Booleantruetruetrue o false; el texto true se convierte.
Date2026-01-052026-01-05T00:00:00.000ZUna fecha. En JSON se envía como texto ISO.

Otras formas:

FormaEjemploNotas
[String], [Number]ze_arr:[String]Un array de ese tipo: cada elemento se convierte.
{ x:Number, y:String }zg_obj:{ x:Number, y:String }Un objeto anidado, validado con sus propios campos.
String(5)zd_max:String(5)Un texto de como máximo 5 caracteres; un texto más largo se rechaza.

Un valor que no encaja con el tipo se rechaza con el estado 400 y el nombre del campo en el error. Estos valores se rechazaron en las comprobaciones: SafeString con <b>x</b>, String(5) con diez caracteres, un UID con abc y un GUID con not-guid. La receta de límites verifica Int, SmallInt, TinyInt, Number2: numeric-schema-boundaries. En esta versión Int no trunca: 7.9 se queda en 7.9.

UID y GUID aceptan los valores que crean UID() y 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() });
}