node.js – 快速验证器中的验证

我使用快速验证器进行验证.我正在使用mongoose的数据库,它也有内置的验证.我想知道我应该使用哪一个

我也想知道在express-validator中的验证是否并行.以此代码为例:

req.checkBody('email','Invalid email').notEmpty().isEmail().isUnique();
req.checkBody('password','Invalid possword').notEmpty().len(8,30);
req.checkBody('first_name','Invalid first_name').notEmpty().isAlpha();
req.checkBody('last_name','Invalid last_name').notEmpty().isAlpha();
req.checkBody('dateofbirth','Invalid dateofbirth').notEmpty.isDate();

isUnique()是一种自定义验证方法,用于检查电子邮件是否尚未注册,它会查询数据库以进行验证.虽然在上面的代码中没有提到,但是我也没有其他的post请求,我需要验证多个字段,数据库查询将在每个字段中进行.

所以我想知道它是否可能并行运行上述每个检查方法,因为这将使它更快,并且我也将更多的节点像.我显然希望使用一个模块来并行运行它们,如异步.我还想知道这些检查方法是否已经并行运行?

请帮我看看吗提前致谢.

解决方法

express-validator旨在验证浏览器/客户端传递的输入; Mongoose的验证是为了验证新创建的文档.两者都有不同的目的,所以你不应该使用一个清晰​​的答案;你可以使用两者,甚至.

至于验证的顺序:检查将按顺序执行.您可以使用async.parallel()使其看起来像并行执行检查,但实际上它们不会因为检查是同步的.

编辑:节点验证器(因此表达验证器)是一个字符串验证器.测试唯一性不是字符串操作,而是在您的数据模型上运行,因此您不应该尝试使用节点验证器(实际上,我甚至不认为可以).

相反,我建议使用Mongoose的unique功能来确保电子邮件地址只在数据库中发生一次.

或者,使用支持异步操作的验证器模块,如async-validate.

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...