在我的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
参数。
我知道此功能代码将无法正常工作。因此,我需要别人的帮助,该如何在验证函数中访问该length变量。
我们将非常感谢您的帮助:)
答案 0 :(得分:1)
也许是这样的:
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);
}