javascript - 在猫鼬的自定义验证器中获取参数
问题描述
在我的express
+mongo
应用程序中,我使用mongoose
的是数据库模式。
对于模式,我需要一个自定义验证器说“用于检查长度是否为 x”
下面是我的包含该自定义验证器的架构
var schema = new Schema({
...,
contactNumber: {
type: Number,
validate: [
{
validator: hasLength,
message: "Contact number must be 10 digits",
length: 10
}
]
},
...
}
以下是自定义验证器功能:
function hasLength(str, length) {
let pattern = "^d{" + length + "}$";
let regex = new RegExp(pattern, 'g');
return regex.test(str);
}
在这个验证器函数中,我想length
从上述模式中访问参数。
我知道这个功能代码不能正常工作。所以我需要有人帮助我如何在验证器函数中访问该长度变量。
您的帮助将不胜感激:)
解决方案
也许是这样的:
var schema = new Schema({
...,
contactNumber: {
type: Number,
validate: [
{
validator: hasLength(10),
message: "Contact number must be 10 digits",
}
]
},
...
}
const hasLength = length => str => {
let pattern = "^d{" + length + "}$";
let regex = new RegExp(pattern, 'g');
return regex.test(str);
}
推荐阅读
- tsql - 使用 having 子句 tsql 优化数据元素
- docker - fsockopen():无法连接到 127.0.0.1:8021(连接被拒绝)
- python - Dask - compute(scheduler='processes') 在提示时效果不佳
- java - 多模块 maven 项目可以被视为微服务吗?
- firebase - 如何 Firebase AB 测试新用户入职?
- python - Python Dash 回调循环
- ios - 在标签之间滑动时使 Capsule() 移动-matchedGeometryEffect
- r - 使用 igraph 在有向网络中着色边缘
- flutter - 颤动通道相互替换
- enums - 在 Schema.org 中为 MedicalWebPage 指定 medicalSpecialty