Verificar los límites del esquema numérico en lugar de asumir la coerción completa
En total5@0.0.19, los tipos numéricos compactos entran todos en el validador del número nativo. **Int No garantiza un completo*: 7.9 Se conserva. Number2 También conserva esta fracción; no interprete su nombre como en torno a dos lugares decimais.
TinyInt acepta valores de 0 a 255. SmallInt acepta de -32767 a 32767; en particular, -32768 se rechaza en esta versión. Estas comprobaciones de subtipo imponen límites pero no exigen valores enteros: TinyInt acepta 1.5. Aplica una comprobación explícita con Number.isInteger() para identificadores, contadores o cantidades que deban ser enteros. Estas observaciones describen esta versión y los valores probados, no la semántica de columnas SQL.
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);
}