javascript - 快速验证器检查输入是否是可用选项之一
问题描述
目前我有这样的html代码:
<!DOCTYPE html>
<html>
<body>
<p>Select an element</p>
<form action="/action">
<label for="fruit">Choose a fruit:</label>
<select name="fruit" id="fruit">
<option value="Banana">Banana</option>
<option value="Apple">Apple</option>
<option value="Orange">Orange</option>
</select>
<br><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
在服务器端,我想通过快速验证器检查 post 请求中的水果是香蕉、苹果还是橙子。这是我到目前为止的代码:
const{body} = require('express-validator');
const VALIDATORS = {
Fruit: [
body('fruit')
.exists()
.withMessage('Fruit is Requiered')
.isString()
.withMessage('Fruit must be a String')
]
}
module.exports = VALIDATORS;
如何检查 POST 请求发送的字符串是否是必需的水果之一?
解决方案
由于express-validator
基于validator.js
,因此您可以在这种情况下使用的方法应该已经可用。无需自定义验证方法。
从validator.js文档中,检查字符串是否在允许值的数组中:
isIn(str, values)
您可以在验证链 API 中使用它,例如:
body('fruit')
.exists()
.withMessage('Fruit is Requiered')
.isString()
.withMessage('Fruit must be a String')
.isIn(['Banana', 'Apple', 'Orange'])
.withMessage('Fruit does contain invalid value')
该方法也包含在express-validator
文档中,此处
为https://express-validator.github.io/docs/validation-chain-api.html#not(在该not
方法的示例中使用)
推荐阅读
- javascript - 循环值未通过 javascript 在 div 中打印
- python-3.x - Python 流数据流“WriteToPubSub”行为
- c++ - 使用 CGI C++ 单击 HTML 页面中的按钮
- kotlin - 如何在最新的kotlin-couroutine中使用extend函数中的协程
- java - Eclipse Java Oxygen 未启动
- python - 为什么 Pandas 会从样本中重新采样?
- r - 如何在tidyverse包中使用左连接只匹配两个dfs中具有多个不同变量的第一个?
- visual-studio-code - 通过 Visual Studio Code 中的代码片段添加命名空间
- mongodb - 如何为 MongoDb TTL 索引编写集成测试
- http - 键入'_InternalLinkedHashMap
' 不是 Flutter 中使用 MultipartRequest 进行类型转换的“String”类型的子类型