首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在快速验证中将字符串与数组中的值匹配

在快速验证中将字符串与数组中的值匹配
EN

Stack Overflow用户
提问于 2016-12-22 18:57:22
回答 7查看 16.6K关注 0票数 9

我正在使用快速验证器来验证我的API的输入,但是我在理解匹配函数时遇到了一些问题。基本上,我需要能够找出一个字符串是否与一个可接受的值数组中的任何一个值相匹配,如下所示,但它似乎不起作用。有什么建议吗?

代码语言:javascript
运行
复制
var schema = {
  "role": {
    in: 'body',
    matches: {
      options: ["administrator", "editor", "contributor", "user"],
      errorMessage: "Invalid role"
    }
  }
}

req.check(schema)
EN

Stack Overflow用户

发布于 2018-06-18 12:44:25

由于这篇文章是在一段时间前发布的,有些事情发生了变化,我想是时候进行更新了:

根据快速验证器5.2.0的文档,建议为验证架构提供以下语法(请注意,在调用note解析器之前,调用快速验证器和函数名checkSchema非常重要):

app.js

代码语言:javascript
运行
复制
const bodyParser = require('body-parser');
const expressValidator = require('express-validator');

/* Initialize/Mount BodyParser for parsing application/x-www-form-urlencoded */
app.use(bodyParser.urlencoded({ extended: false }));

/* Initialize/Mount BodyParser for parsing application/json */
app.use(bodyParser.json());

/* Initialize/Mount Express-Validator for validating user input from the frontend */
app.use(expressValidator());

在路由中(以下是一个注册示例):

代码语言:javascript
运行
复制
/* INFO: Require express validator */
const { check, checkSchema, validationResult } = require('express-validator/check');

var Schema = {
  "role": {
    in: 'body',
    matches: {
      options: [/\b(?:administrator|editor|contributor|user)\b/],
      errorMessage: "Invalid role"
    }
  }
}

module.exports = (router) => {
  router.post('/register', [
    // INFO: check validty
    check('username',"Invalid username").isLength({min: 5}),
    check('email',"Invalid  e-mail").isEmail(),
    check('department',"Invalid department").isLength({min: 3}),
    checkSchema(Schema),
    check('password',"Invalid  password").isLength({min: 5})
    ], 

    function(req, res, next) {  
      const errors = validationResult(req);
      if (!errors.isEmpty()) {
         // DO THIS
      }
      else {
         // DO THAT
      }
     });
    return router;
}         
票数 3
EN
查看全部 7 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41289980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档