egg-validate
优质
小牛编辑
139浏览
2023-12-01
egg-validate的定制化升级
- [ ] egg-validate 基于 parameter 定制,可以用它所有的规则
- [ ] 文档:https://github.com/node-modules/parameter
定制化egg-validate
建立 app.js 入口文件
'use strict' const path = require('path') class AppBootHook { constructor(app) { this.app = app; } async didLoad() { // 引入validate目录,并注入app实例 const directory = path.join(this.app.config.baseDir, 'app/validate'); app.loader.loadToApp(directory, 'validate'); }
}
module.exports = AppBootHook;
2. 建立自定义规则校验文件
app/validate/user.js
```
module.exports = app =>{
let { validator } = app;
// 校验用户名是否正确
validator.addRule('userName', (rule, value)=>{
console.log(rule);
if (/^d+$/.test(value)) {
return "用户名应该是字符串";
}
else if (value.length < 3 || value.length > 10) {
console.log("用户名的长度应该在3-10之间");
}
});
// 添加自定义参数校验规则
validator.addRule('123', (rule, value) => {
if (value !== '123'){
return 'must be 123';
}
});
};
```
4. 参数校验
```
ctx.validate({username:{type:'userName'}}, ctx.request.body )
```
>[danger] 这样就可以用自定义规则了