定义并导出验证规则
const Validator = async (ctx,next)=>{
try {
ctx.verifyParams({
goods_num:{type:'number',required:true},
goods_price:{type:'number',required:true}
})
} catch (err) {
cartFormatError.result = err
return ctx.app.emit('error',cartFormatError,ctx)
}
await next()
}
module.exports = {
Validator
}
使用
router.patch('/updateCarts/:id',auth,validator,CartIdExist,update)
基于上述修改代码实现验证规则的复用
让验证规则成为一个闭包,需要验证的字段作为参数传递
const validator = (rules)=>{
return async (ctx,next)=>{
try {
ctx.verifyParams(rules)
} catch (err) {
cartFormatError.result = err
return ctx.app.emit('error',cartFormatError,ctx)
}
await next()
}
}
使用
router.patch('/updateCarts/:id',auth,validator({
goods_num:{type:'number',required:false},
selected:{type:'bool',required:false}
}),CartIdExist,update)