ForgeTotal.js 5
pt

Total.js 5

Verifique os limites do esquema numérico em vez de assumir a coerção completa

Total.js 5 · total5@0.0.19 validationschemanumbersboundaries Executada com o Total.js 5

Em total5@0.0.19, os tipos numéricos compactos entram no validador do número nativo. Int não garante um integer: 7.9 é preservado. também Number2 conserva esta fração; não interprete seu nome como redondo para dois lugares decimais.

TinyInt aceita valores de 0 a 255. SmallInt aceita de -32767 a 32767; em particular, -32768 é rejeitado nesta versão. Estas verificações de subtipo impõem limites mas não exigem valores inteiros: TinyInt aceita 1.5. Aplique uma verificação explícita com Number.isInteger() para identificadores, contadores ou quantidades que tenham de ser inteiros. Estas observações descrevem esta versão e os valores testados, não a semântica das colunas 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);
}