ForgeTotal.js 5
ro

Total.js 5

Verificați limitele schemei numerice în loc de a lua forța completă

Total.js 5 · total5@0.0.19 validationschemanumbersboundaries Executată cu Total.js 5

În total5@0.0.19, toate tipurile numerice compacte intră în validatorul numărului nativ. Int nu garantează un întreg: 7.9 este păstrat. Number2 păstrează, de asemenea, această fracție; nu se interpretează numele său ca rotund la două locuri decimale.

TinyInt acceptă valori de la 0 la 255. SmallInt acceptă de la -32767 la 32767; în special, -32768 este respins în această versiune. Aceste verificări de subtip impun limite, dar nu cer valori întregi: TinyInt acceptă 1.5. Aplică o verificare explicită cu Number.isInteger() pentru identificatori, contoare sau cantități care trebuie să fie întregi. Aceste observații descriu această versiune și valorile testate, nu semantica coloanelor SQL.

controllers/numbers.js
var schema = NEWSCHEMA('NumericBoundaries', '*integer:Int,*small:SmallInt,*tiny:TinyInt,*decimal:Number2');

exports.install = function() {
	ROUTE('POST /numbers/ @json', numbers);
};

function numbers($) {
	var result = schema.transform($.body);
	if (result.error) {
		$.response.status = 400;
		$.json({ error: 'invalid numeric input' });
		return;
	}
	$.json(result.response);
}