我正在学习如何使用Meteor,目前我正在使用check
包来验证用户输入,使用以下教程:http://meteortips.com/first-meteor-tutorial/methods/。
我尝试在方法(Match.Integer
中)使用addPlayer
模式,以确保数据输入特定字段(通过传递给addPlayer
方法initialScore
参数)是一个有效的整数,在通过控制台调用addPlayer
时工作正常。但是,当通过表单输入数据时(提交时调用addPlayer
),由于输入的数据属于String
类型,因此无法正常工作。
我在考虑在使用Number
之前将Match.Integer
函数应用于输入的数据,但我认为这是一个坏主意,因为会接受一些非数值。
拥有自己的isInteger
功能是个好主意,例如:
function isInteger(n) {
return n == +n && n == (n|0);
}
(来自https://stackoverflow.com/a/3885844/3806231,但===
已替换为==
,以允许检查String
类型的表单数据
并在应用Number
功能之前调用此方法,如上所述?例如:
Meteor.methods({
'addPlayer': function(initialScore) {
if (isInteger(initialScore)) {
check(Number(initialScore), Match.Integer);
}
}
});
这样的东西看起来很冗长,而且只是为了验证一个整数。在使用Meteor之前,我只想调用类似isInteger
方法的东西,但现在我使用Meteor我想利用可用的软件包来保存自己编写的一些标准验证代码。
有更好的方法吗?