egg框架实现表单验证及获取验证的错误信息

最近再看egg框架 是阿里今年开源的一款基于nodejs的mvc架构的web框架 感兴趣的同学可以看看

因为之前一直做php的关系 在tp,yii,laravel这些框架中对于前台发送的数据,模型里都有相应的验证机制

看了下egg官方文档 只简单提了下 并且一旦数据没通过验证 会直接抛出422的错误 egg官方也建议这么做

但是这种直接抛错的 会影响用户的体验 我想应该提供一种获取错误消息的机制 类似tp里验证失败可以通过D('模型名')->getError()方式来获取 把错误信息分配到视图里 可以通过弹出层等方式友好显示

const Controller = require('egg').Controller;
const Parameter = require('parameter');
const Check = new Parameter();
class RegController extends Controller {
    * index(ctx) {
        const createRule = {
            LoginName: {type: 'string',required: true,allowEmpty: false,max:20,min:4}
        };        
        const errors = Check.validate(createRule, ctx.request.body);     
        console.log(errors); 
        yield ctx.render('Reg/index.html');
    }
}
module.exports = RegController;

以上是我控制器里的代码

主要利用到parameter这个包

前提先安装 命令行切换到项目目录 执行

cnpm install parameter --save

验证失败时会返回以上信息

验证成功时errors本身是undefined 只需要判断error是否是undefined时  来判断是否验证成功

 

posted @ 2017-08-07 13:54  代码小伙  阅读(2682)  评论(0编辑  收藏  举报