ForgeTotal.js 5
nl

Total.js 5

Controleer de numerieke schema-grenzen in plaats van een volledige coercium te nemen

Total.js 5 · total5@0.0.19 validationschemanumbersboundaries Uitgevoerd met Total.js 5

In total5@0.0.19, de compacte numerieke typen alle in de native number validator. Int garandeert geen integrer: 7.9 wordt bewaard. Number2 behoudt ook deze fractie; niet interpreteren zijn naam als rond naar twee decimale plaatsen.

TinyInt accepteert waarden van 0 tot en met 255. SmallInt accepteert -32767 tot en met 32767; met name -32768 wordt in deze versie afgewezen. Deze subtypecontroles dwingen grenzen af maar vereisen geen gehele waarden: TinyInt accepteert 1.5. Pas een expliciete controle met Number.isInteger() toe voor identificatoren, tellers of hoeveelheden die geheel moeten zijn. Deze waarnemingen beschrijven deze versie en de geteste waarden, niet de semantiek van SQL-kolommen.

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);
}