最近再看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时 来判断是否验证成功