Javascript Azure-服务器验证

Javascript Azure-服务器验证,javascript,android,regex,node.js,azure-mobile-services,Javascript,Android,Regex,Node.js,Azure Mobile Services,好的,我尝试在服务器端进行验证。我正在为我的Android应用程序使用Windows Azure移动服务。验证在Javascript/Node.js中完成 我一直在尽我最大的努力寻找解决我的问题的方法,却偶然发现了[这个链接]() 我打算在将对象持久化到数据库之前使用regexp来验证它 我会理解如何进行“预查询”,但由于我需要访问权限才能使用正则表达式,我必须执行“后查询”过滤 下面是我(到目前为止)所用的代码,但我想知道如何验证许多字段并为每个无效字段传递适当的错误消息。如果所有数据都有效,

好的,我尝试在服务器端进行验证。我正在为我的Android应用程序使用Windows Azure移动服务。验证在Javascript/Node.js中完成

我一直在尽我最大的努力寻找解决我的问题的方法,却偶然发现了[这个链接]()

我打算在将对象持久化到数据库之前使用regexp来验证它

我会理解如何进行“预查询”,但由于我需要访问权限才能使用正则表达式,我必须执行“后查询”过滤

下面是我(到目前为止)所用的代码,但我想知道如何验证许多字段并为每个无效字段传递适当的错误消息。如果所有数据都有效,则保存到数据库

提前谢谢

function insert(item, user, request) {

    var userTable = tables.getTable('User');
    userTable.where({email: item.email}).read({
                    success: emailExists
                    });

    function emailExists(existingItems)
    {
        if (existingItems.length > 0) 
        {
                    request.respond(statusCodes.CONFLICT, 
                        "An account is already registered with this email!.");
                } 
                else 
                {
                    // Insert the item as normal. 
                    request.execute({
                        success: function (results) 
                        {
                            var regexEmail = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
                            var filtered = results.filter(function(item) 
                            {
                             return regexEmail.test(item.email);
                            });

                            request.respond(statusCodes.OK, filtered);
                       }
                });
          }   
    }
}
函数插入(项目、用户、请求){
var userTable=tables.getTable('User');
userTable.where({email:item.email})。阅读({
成功:电子邮件存在
});
功能emailExists(现有项)
{
如果(existingItems.length>0)
{
请求。响应(状态代码。冲突,
“已使用此电子邮件注册了帐户!”;
} 
其他的
{
//按正常方式插入项目。
请求执行({
成功:功能(结果)
{
var regexEmail=/^([^()[\]\\,;:\s@\“]+(\.[^()[\]\,;:\s@\“]+)*(\“+\”)(\[[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.];
var filtered=results.filter(函数(项)
{
返回regexEmail.test(item.email);
});
请求.响应(statusCodes.OK,已过滤);
}
});
}   
}
}

如果我理解您希望正确执行的操作,您首先需要根据数据库中的项目验证输入的电子邮件(以保持唯一性),然后在插入之前验证输入中的其他字段。如果是这种情况,那么在查询验证之后(为了防止重复的电子邮件),您可以单独验证项目字段,如中所示。下面的代码显示了此类验证的示例

function insert(item, user, request) {

    var userTable = tables.getTable('User');
    userTable.where({email: item.email}).read({
                        success: emailExists
                    });

    function emailExists(existingItems)
    {
        if (existingItems.length > 0) 
        {
            request.respond(statusCodes.CONFLICT, 
                "An account is already registered with this email!.");
        } 
        else 
        {
            // Validate fields *before* inserting
            var regexEmail = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
            if (!regexEmail.test(item.email)) {
                request.respond(statusCodes.BAD_REQUEST, { error: 'E-mail is invalid' });
                return;
            }

            if (!item.name || item.name.length < 10) {
                request.respond(statusCodes.BAD_REQUEST, { error: 'Item must have a name of at least 10 characters' });
                return;
            }

            // If all validation succeeded, then insert the item
            request.execute();
        }
    }
}
函数插入(项目、用户、请求){
var userTable=tables.getTable('User');
userTable.where({email:item.email})。阅读({
成功:电子邮件存在
});
功能emailExists(现有项)
{
如果(existingItems.length>0)
{
请求。响应(状态代码。冲突,
“已使用此电子邮件注册了帐户!”;
} 
其他的
{
//在*插入之前*验证字段
var regexEmail=/^([^()[\]\\,;:\s@\“]+(\.[^()[\]\,;:\s@\“]+)*(\“+\”)(\[[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.];
如果(!regexEmail.test(item.email)){
respond(statusCodes.BAD_请求,{错误:'电子邮件无效'});
返回;
}
如果(!item.name | | item.name.length<10){
respond(statusCodes.BAD_request,{error:'项的名称必须至少包含10个字符'});
返回;
}
//如果所有验证都成功,则插入该项
request.execute();
}
}
}

这正是我要找的,如果我让它听起来很混乱,很抱歉!谢谢