我有以下验证某些数据的 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/