NodeJs+Koa学习5、校验器的使用
2022-03-10 本文已影响0人
那钱有着落吗
该系列帖子是跟着七月老师学的Nodejs+Koa教程,这个校验器是他自己写的。比较基础的校验我们可以使用validator.js(开源)就行。
1.校验器的使用
首先在我的项目中我是已经把lin-validator.js给导入进来了;
![](https://img.haomeiwen.com/i8553141/2fb31518ed269f9c.png)
上图就是我们写了一个子类的校验器,然后仅验证路径中的参数是否可以校验通过。
![](https://img.haomeiwen.com/i8553141/52ac6b53a08e7041.png)
![](https://img.haomeiwen.com/i8553141/b27cbd9fbe8f714b.png)
2.更加便捷的获取参数
2.1便捷获取参数
![](https://img.haomeiwen.com/i8553141/5aafafd9c5cf8431.png)
使用校验器的好处之一就是获取参数更加的便捷,同时不需要对参数进行转型。
如果不需要转换,可以在方法中这么写: v.get('path.id',parsed=false);
2.2嵌套数据的属性获取
还有个好用的地方就是,获取复杂的嵌套对象中的子对象的属性:
![](https://img.haomeiwen.com/i8553141/1ba65190f62508dd.png)
如果我们自己手写去获取,也能获取到,不过要写一堆的判断,因为你总得判断属性的上一层是否存在。而老师写的校验器内部原理是使用了lodash 的中间件。
3.异常的处理与控制台错误日志的冲突
前面由于我们把异常都统一做了处理,导致后面出现一些问题,但是控制台并没有打印出来,所以搞得很“正常”。
我们的逻辑是在开发环境中是需要把异常给正常的打印出来的,但是在生产环境中就不需要了,因为我们也看不到;
所以我们首先需要一个配置文件来记录当前的环境:
![](https://img.haomeiwen.com/i8553141/50ccabf413043d16.png)
同样的,我们把这个文件给加载到初始化的时候:
![](https://img.haomeiwen.com/i8553141/4b2f629fb6ba1c60.png)
![](https://img.haomeiwen.com/i8553141/8fe1cab25809e7ad.png)