用户登录

下面我们可以创建一个跟这个 UserNotExistValidator 验证器对应的验证装饰器,在这个类的下面,export 一个装饰器,名字是 UserNotExist,它的值是一个函数,有个 options? 参数,类型是 ValidationOptions。函数返回一个函数,有个 object 参数,类型是 Object,还有一个 propertyName 参数,类型是 string。

执行一下 registerDecorator 注册一个装饰器,提供一个选项参数,设置一下 target,表示验证的目标,这里就是 object.constructor ,再设置一下 propertyName,值是 propertyName,再添加一个 options,值是 options,然后可以再用一个 validator ,值是 UserNotExistValidator 。

使用验证装饰器

下面试一下这个验证装饰器,打开 CreateUserDto,去掉 name 属性上用的这个 @Validate 装饰器,换成一个 UserNotExist 装饰器,这个装饰器会使用 UserNotExistValidator 验证 name 这个属性的值。最后把不再需要的这些导入删除掉。

测试

在 Http 客户端,重新发送一下创建用户请求,这里仍然会显示用户已存在这条错误信息。

自定义验证装饰器《 Nest.js 企业级后端实践:用户注册 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点