微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.

原文地址:https://www.jb51.cc/nodejs/241256.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐