验证表单内容是否符合数据库字段的规则
2015-12-02 16:04
323 查看
本文是"获取当前数据库(mysql)所有表的字段内容"生成的数据库文件的验证类.
schoma.js
调用方式:
schoma.js
var fs = require('fs'); var DBstructure = fs.readFileSync(global.rootPath+"/db.json","utf8");//数据结构文件内容 var schema = function(tablename){ this.columns = JSON.parse(DBstructure)[tablename]; } exports.schema = schema; //验证数据合法性 schema.prototype.validparam = function(data){ for(var p in data){ var err = validRouter(p,data[p],this.columns); if(err) { return err; break; } } } //根据不同数据类型,执行不同的函数 var types = []; types["int"]=validInt; types["varchar"]=validLength; //types["datetime"]=validDate; //必填项验证 function notEmpty(value){ return value?true:false; } //验证整型 function validInt(column,value){ if(isNaN(value)) { return column.comment+"不是数字"; } else return ""; } //验证长度 function validLength(column,value){ if(value.length>parseInt(column.length)) return column.comment+"内容过长"; else return ""; } //分发到不同的验证函数 var validRouter = function(key,value,column){ if(column[key]) { //字段非空统一验证 if (column[key].isnull == "NO") { if (!notEmpty(value)) return column[key].comment+"不能为空"; } if (typeof types[column[key].type] == "function") { var re = types[column[key].type](column[key], value); return re; } else return ""; } else return ""; }
调用方式:
var schema = require("./schema").schema; var userSchema = new schema("t_user"); var err = userSchema.validparam(data); if (err) { res.write(req.query.jsoncallback + "(" + JSON.stringify(Util.errorMessage(err)) + ")"); res.end(); return; }
相关文章推荐
- mysql5.6.17 zip安装、卸载及root密码修改
- MongoDB MapReduce 分组统计
- oracle进制-10进制跟2进制互转
- 查询oracle sql运行计划,一个非常重要的观点--dba_hist_sql_plan
- oracle 数据库之数字处理
- 安卓Sqlite
- MongoDB常用操作
- Mysql 主从同步
- mongodb3.0以上的远程连接问题
- mysql执行计划Status定义
- mysql常用两种数据引擎
- 在Sqlite中通过Replace来实现插入和更新
- DBA常用SQL之表空间与数据文件
- DBA常用SQL之会话与等待事件
- mysql-存储引擎
- sql server客户端连接自定义端口
- MySQL数据库水平切分的实现原理解析
- oracle中row_number() over()分析函数用法
- mongodb异常关闭后重启
- Redis操作命令总结