javascript - 如何使用express-validator的黑名单方法

标签 javascript validation express-validator

我有以下验证某些数据的 post 请求:

app.post(
  "/review",
  [
    // Add the middleware to validate email and restaurant info below:
    check("email").isEmail(),
    check("restaurant").notEmpty().blacklist("<>"),
    check("rating").isNumeric(),
    check("review").notEmpty().blacklist("<>")
  ],
// ...

validator.js 的文档演示了如何使用 blacklist 方法,如下所示:


blacklist(input, '\\[\\]')

考虑到我添加中间件的上下文,理解 input 参数到底应该是什么有点令人困惑。我已经在使用 check 方法来查找输入字段,blacklist 方法中到底应该包含什么内容?

最佳答案

由于您正在使用[express-validator][1]它作为 [validator.js][1] 的包装器,输入被注入(inject)到 blacklist方法 express-validator在你的情况下,因为你正在使用 check()方法express-validator输入将是带有您作为 check() 参数提供的标签的参数方法可能存在于以下任何请求对象中:

  • req.body
  • req.cookies
  • req.headers
  • req.params
  • req.query

就您而言 check("restaurant").notEmpty().blacklist("<>") ,标签为 restaurant 的参数将从上述请求对象之一中提取,并且 check("review").notEmpty().blacklist("<>") ,带有标签 review 的参数将被提取。

因此,应该为 check 方法提供的唯一参数是一个正则表达式字符串,它指定必须删除的字符。

关于javascript - 如何使用express-validator的黑名单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69215308/

相关文章:

javascript - 在 box2d/matter.js 中查找运动的法向和切向分量

javascript - Chrome JS 控制台 ("$x(...)"中的 XPath 搜索)输出数组(jQuery 对象?)而不是 HTML 文本部分(DOM 元素?)

validation - 使用训练阶段使用的完全相同的数据集进行交叉验证是否合适?

php - CodeIgniter form_validation 不显示错误

javascript - 快速验证器 - 自定义密码验证器无法读取未定义的属性

javascript - yuicompressor 错误,不知道哪里出了问题?

java - 使用 hibernate-validator 和 javax.validation :validation-api:1. 1.0.Final) 和 glassfish-embedded-all?

javascript - 为什么我在 UI 中没有收到验证 Flash 消息,我收到这样的 Flash 错误 [object Object],[object Object],[object Object]

node.js - 如何在带有express-validator的验证链中使用bail()

javascript - 中断 D3 转换 : How to interrupt an ongoing transition upon drag?