当前位置: 首页 > 面试题库 >

在Express-Validator中进行验证

彭仲卿
2023-03-14
问题内容

我正在使用express-validator进行验证。我在数据库中使用猫鼬,它还内置了验证功能。我想知道应该使用哪一个?

我还想知道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()是一种自定义验证方法,它检查电子邮件是否尚未注册,它查询数据库以进行验证。尽管在上面的代码中未提及,但是我还有其他一些职位要求,我需要验证多个字段,在每个字段中都将进行数据库查询。

因此,我想知道是否有可能并行运行上述每个check方法,因为这样可以使其运行得更快,也可以让我有更多的节点喜欢。我显然希望使用一个模块像异步一样并行运行这些模块。我还想知道这些检查方法是否已经在并行运行?

请帮我弄清楚吗?提前致谢。


问题答案:

express- validator用于验证浏览器/客户端传递的输入;猫鼬的验证旨在验证新创建的文档。两者都有不同的用途,因此没有一个应该使用的明确答案。您甚至可以同时使用两者。

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

编辑 :(node-validator因此express- validator)是一个字符串验证器。测试唯一性不是字符串操作,而是在您的数据模型上运行,因此您不应该尝试使用node- validator它(事实上,我什至不认为 可以 )。

相反,我建议使用Mongoose的unique功能来确保一个电子邮件地址在您的数据库中仅出现一次。

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



 类似资料:
  • express-validator An express.js middleware forvalidator. Installation Documentation Changelog License Installation npm install express-validator Also make sure that you have Node.js 8 or newer in orde

  • �� express-openapi-validator An OpenApi validator for ExpressJS that automatically validates API requests and responses using an OpenAPI 3 specification. �� express-openapi-validator is an unopinionat

  • 问题内容: Hibernate Validator 4.x中是否有跨域验证的实现(或第三方实现)?如果没有,实现跨域验证器的最干净方法是什么? 例如,如何使用API​​来验证两个bean属性是否相等(例如,验证密码字段与密码验证字段匹配)。 在注解中,我期望这样的东西: 问题答案: 每个字段约束都应由不同的验证者注释处理,换句话说,不建议对一个字段进行其他字段的验证注释检查。跨领域验证应在课程级别

  • 6.4. 使用Spring的Validator接口进行校验 你可以使用Spring提供的validator接口进行对象的校验。Validator接口的使用相当的直接,同时它能与一个所谓的Errors对象协同工作。换句话说,在Spring做校验的时候,它会将所有的校验错误汇总到Errors对象中去。 正如先前所说,Validator接口的使用相当的直接,你不妨实现一下这个接口,考虑下面这个简单的数据

  • Jboot 从 V3.7.5 开始,增强 Jboot 的验证方式,在 Jboot 之前的 @EmptyValidate、@RegexValidate 等基础上,进一步基于 JSR 303 – Bean Validation 简化了验证方式,相比 Spring 更加优雅简单。 @NotNull 在 Controller (或 Service 等)中,我们可以直接通过 @NotNull 注解给 Con

  • 我正在使用Node JS和Express创建一个微服务架构。我知道微服务的主要特点之一是面向服务的体系结构,团队可以独立设计、开发和发布应用程序。因此,在我的设计中,我认为每个微服务都提供了自己的API,它们通过API相互通信,每个微服务都是独立的,有自己的生命在等待请求。 我写这个问题是因为我对微服务之间的身份验证和通信有几个疑问。 对于自动认证,我用JWT做了一些测试来认证微服务的应用编程接口