ForgeTotal.js 5
el

Total.js 5

Ελέγξτε τα όρια του αριθμικού σχήματος αντί να αναλάβετε πλήρη καταναγκασμό

Total.js 5 · total5@0.0.19 validationschemanumbersboundaries Εκτελέστηκε με το Total.js 5

Σε total5@0.0.19, οι συμπαγές αριθμητικές τύπους εισάγουν όλους τον επικυρωτή του μητρικού αριθμού. Int δεν εγγυάται ένα ολοκληρωμένο: 7.9 διατηρείται. Number2 διατηρεί επίσης αυτό το τμήμα.

Το TinyInt δέχεται τιμές από 0 έως 255. Το SmallInt δέχεται από -32767 έως 32767· συγκεκριμένα, το -32768 απορρίπτεται σε αυτή την έκδοση. Αυτοί οι έλεγχοι υποτύπων επιβάλλουν όρια αλλά δεν απαιτούν ακέραιες τιμές: το TinyInt δέχεται το 1.5. Εφαρμόστε ρητό έλεγχο με Number.isInteger() για αναγνωριστικά, μετρητές ή ποσότητες που πρέπει να είναι ακέραιες. Αυτές οι παρατηρήσεις περιγράφουν αυτή την έκδοση και τις δοκιμασμένες τιμές, όχι τη σημασιολογία των στηλών 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);
}