美文网首页
nodejs参数验证

nodejs参数验证

作者: HarriesChen | 来源:发表于2015-05-18 02:24 被阅读1735次

今天在用nodejs开发后台的时候遇到了一个问题,就是在修改信息的时候怎么验证参数,这里既要验证参数的可修改性,又要验证参数的合法性,于是我就写了个方法来验证,思路大概是这样的,建立一个数组,里面食是参数为key的字典,字典里面包含了几种属性

  • 是否必须存在 required
  • 是否可为空 allowNull
  • 长度限制 Maxlength

这样做的话保证了所传递的参数必须在数组之内,防止其他的非法参数,如果检测到非允许修改的参数传递进来,直接返回500。

这里最简单的例子
在我们修改个人信息的时候,我们只允许修改姓名和电话号码,所以我们设置一个列表来进行过滤

{
"key":[是否必须,最大长度]
}
var enableList = {
        "name": [false, 0],
        "phone": [true, 11]
    }

这里我们让姓名为非必填,长度不限制,电话号码为必填,最大长度为11位。

检验的方法为

//check required
    for(var i in rules){
        console.log(rules[i][0]);
        if(rules[i][0] == true) {
            //判断参数是否存在
            if(!args[i]){
                console.log("缺少参数"+i);
                return false;
            }
        }
    }

    //判断参数是否在允许的列表中
    for (var i in args) {
        if(!rules[i]){
            console.log("invalid args");
            return false;
        }
        //限制长度
        if(rules[i][1]!=0){
            if(args[i].length>rules[i][1]) {
                console.log("args too long");
                return false;
            }
        }
    }
    return true;

我们来进行一下测试

输入

name:chenhao

输出结果

{ name: 'chenhao' }
false
true
缺少参数phone

可以看到提示缺少phone

输入:

name:chenhao,
phone:188888888888

输出:

{ name: 'chenhao', phone: '188888888888' }
false
true
false
args too long

提示参数长度超过限制

输入:

name:chenhao,
phone:188888888888,
gender:man

输出:

{ name: 'chenhao', phone: '1888888888', gender: 'man' }
false
true
false
invalid args

这里看到检测到了非法的gender参数

以上就是最简单的参数检查,我这里在对检验失败后统一进行了错误500的返回,也可以是自动过滤掉非法的参数而不返回错误。这个方法可以根据实际情况进行扩展,比如加上isEmail,isNumber等各种扩展。

相关文章

  • nodejs参数验证

    今天在用nodejs开发后台的时候遇到了一个问题,就是在修改信息的时候怎么验证参数,这里既要验证参数的可修改性,又...

  • Vue环境搭建

    1、NodeJS的安装官网下载:https://nodejs.org/en/download/current/验证...

  • day47-Django表单验证图片上传和分页技术

    一、表单验证 1.定义验证表单 2.使用表单验证is_valid():验证参数是否有效,如果参数验证成功返回Tru...

  • 参数验证

    对于参数验证,可以从Request从获取参数进行验证,也可以先将参数封装成pojo类对象,而每个pojo类自身提供...

  • nodejs短信验证

    nodejs短信验证 申请配置信息: 下载super-alidayu短信验证组件 [root@localhost ...

  • minimist轻量级的命令行参数解析库

    nodejs的命令行参数解析工具

  • nodejs短信验证

    申请配置信息: 1.短信验证:阿里大鱼(http://www.alidayu.com/) 2.创建应用 3.下载n...

  • typescript开发

    安装nodejs验证文件 npm install --save-dev @types/node

  • Ionic环境搭建

    1.去官网下载NodeJs,安装安装nodejs,验证是否安装成功(npm -v) 2.安装cordova, 打开...

  • 常用的npm包

    命令行参数处理 nodejs 脚本,命令行参数处理,接受参数parse 可以使用 minimist 参数提示 co...

网友评论

      本文标题:nodejs参数验证

      本文链接:https://www.haomeiwen.com/subject/hstlqttx.html