最近再看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時 來判斷是否驗證成功