【发布时间】:2017-04-07 17:09:42
【问题描述】:
我有一个非常基本的模型,只有一个字段 name 我想针对正则表达式进行验证:
const Projects = new ProjectsCollection('projects');
Projects.schema = new SimpleSchema({
_id : {type: String, regEx: SimpleSchema.RegEx.Id},
name : {
type : String,
regEx: /^[a-zA-Z0-9]+((\s[a-zA-Z0-9]+)|(_[a-zA-Z0-9]+)|(-[a-zA-Z0-9]+)|(\.[a-zA-Z0-9]+))?$/
}
});
Projects.attachSchema(Projects.schema);
当验证失败时,我会返回一个验证错误,指出 regex failed for Name 这对我来说是不可取的,因为它模棱两可并且用户不知道我究竟需要他输入什么。
我尝试添加以下内容但没有成功:
Projects.schema.messages({
"regEx name": [{
msg: "test error message"
}]
});
然而,这个.. 有效,但问题是我可以有任何其他带有名称字段的模型,它会为所有这些模型吐出相同的错误消息(我计划有另一个带有 name 的模型字段):
SimpleSchema.messages({
"regEx name": [{
msg: "test error message"
}]
});
我也试过了(没有成功):
SimpleSchema.messages({
"regEx projects.name": [{
msg: "test error message"
}]
});
我通过方法插入,这是我的插入代码:
export const insert = new ValidatedMethod({
name : 'projects.insert',
mixins : [simpleSchemaMixin],
schema : Projects.simpleSchema().pick([
'name'
]),
schemaValidatorOptions: {
clean : true,
filter: false
},
run({name}) {
return Projects.insert({
name
}, null);
},
});
关于我应该如何配置我的验证消息以便我可以针对特定字段定位它们的任何想法?
【问题讨论】:
标签: meteor simple-schema