我有以下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]
的包装器,输入由express-validator
注入到blacklist
方法,在您的情况下,由于您使用的是express-validator
的check()
方法,输入将是带有标签的参数,您已提供作为check()
方法的参数,该方法可能存在于以下任何请求对象中:
req.body
req.cookies
req.headers
req.params
req.query
对于check("restaurant").notEmpty().blacklist("<>")
,将从上述两个请求对象中提取标签为restaurant
的参数,对于check("review").notEmpty().blacklist("<>")
,将提取标签为review
的参数。
因此,应该为检查方法提供的唯一参数是一个regex字符串,该字符串指定必须删除的字符。