重复使用同一字段时出现架构错误
Schema error when reusing same field
我有两个使用相同字段的独立模式。我试图创建 schemaComponents,以便我可以在一个位置更新两个模式,但是我收到错误 Error: Invalid definition for school.$ field
。当我使用它时。我不确定我在这里做错了什么,我的印象是这是允许的。
路径:SchemaComponents.js
SchemaComponents = {
schools: {
type: [String],
optional: true,
autoform: {
options: [
{label: "School One", value: 'SchoolOne'},
{label: "School Two", value: 'SchoolTwo'},
{label: "School Three", value: 'SchoolThree'},
]
}
}
};
路径:StudentSchema.js
import from '../components/SchemaComponents.js';
StudentSchema = new Mongo.Collection("studentSchema");
var Schemas = {};
Schemas.StudentSchema = new SimpleSchema({
school: SchemaComponents.schools,
});
StudentSchema.attachSchema(Schemas.StudentSchema);
路径:TeacherSchema.js
import from '../components/SchemaComponents.js';
TeacherSchema = new Mongo.Collection("teacherSchema");
var Schemas = {};
Schemas.TeacherSchema = new SimpleSchema({
school: SchemaComponents.schools,
});
TeacherSchema.attachSchema(Schemas.TeacherSchema);
您将 SchemaComponent
定义为简单的 object 而不是 SimpleSchema 对象。要重复使用您的 schools
定义,请执行以下操作:
let schoolsSchema = new SimpleSchema({
schools: {
type: [String],
optional: true,
autoform: {
options: [
{label: "School One", value: 'SchoolOne'},
{label: "School Two", value: 'SchoolTwo'},
{label: "School Three", value: 'SchoolThree'},
]
}
}
});
那么你可以这样做:
Schemas.TeacherSchema = new SimpleSchema({
school: {
type: schoolsSchema
}
});
我有两个使用相同字段的独立模式。我试图创建 schemaComponents,以便我可以在一个位置更新两个模式,但是我收到错误 Error: Invalid definition for school.$ field
。当我使用它时。我不确定我在这里做错了什么,我的印象是这是允许的。
路径:SchemaComponents.js
SchemaComponents = {
schools: {
type: [String],
optional: true,
autoform: {
options: [
{label: "School One", value: 'SchoolOne'},
{label: "School Two", value: 'SchoolTwo'},
{label: "School Three", value: 'SchoolThree'},
]
}
}
};
路径:StudentSchema.js
import from '../components/SchemaComponents.js';
StudentSchema = new Mongo.Collection("studentSchema");
var Schemas = {};
Schemas.StudentSchema = new SimpleSchema({
school: SchemaComponents.schools,
});
StudentSchema.attachSchema(Schemas.StudentSchema);
路径:TeacherSchema.js
import from '../components/SchemaComponents.js';
TeacherSchema = new Mongo.Collection("teacherSchema");
var Schemas = {};
Schemas.TeacherSchema = new SimpleSchema({
school: SchemaComponents.schools,
});
TeacherSchema.attachSchema(Schemas.TeacherSchema);
您将 SchemaComponent
定义为简单的 object 而不是 SimpleSchema 对象。要重复使用您的 schools
定义,请执行以下操作:
let schoolsSchema = new SimpleSchema({
schools: {
type: [String],
optional: true,
autoform: {
options: [
{label: "School One", value: 'SchoolOne'},
{label: "School Two", value: 'SchoolTwo'},
{label: "School Three", value: 'SchoolThree'},
]
}
}
});
那么你可以这样做:
Schemas.TeacherSchema = new SimpleSchema({
school: {
type: schoolsSchema
}
});