我有一个可以引用其自身的值架构,因此它可以具有许多嵌套的值。例如,这是一个示例JSON:
{
name: 'IPA',additional_questions: [{
name: 'bitterness',additional_fee: 0,additional_questions: [{
name: 'low',additional_fee: 0
},{
name: 'medium',additional_fee: 19
},{
name: 'high',additional_fee: 39
}
]
}]
}
以下是该模型,我不确定该模型是否正确:
// Build schema for Values interface
export var ValueSchema: Schema = new Schema({
name: { type: String,required: true },additional_fee: { type: Number },additional_questions: { type: [ValueSchema] }
})
// Build schema for Questions interface
export var QuestionsSchema: Schema = new Schema({
question: { type: String,field: { type: String,enum: ["dropdown","checkbox","free-form","multiple-choice"],values: { type: [ValueSchema],required: true }
})
当我使用REST API创建此模型时,出现验证错误:
{
"statusCode": 400,"body": {
"msg": {
"msg": null,"err": {
"errors": {
"questions.0.values.6.additional_questions": {
"message": "Cast to Array failed for value \"[ { name: 'IPA',\n additional_fee: 0,\n additional_questions: [ [Object],[Object],[Object] ] } ]\" at path \"additional_questions\"","name": "CastError","stringValue": "\"[ { name: 'IPA',[Object] ] } ]\"","kind": "Array","value": [
{
"name": "IPA","additional_fee": 0,"additional_questions": [
{
"name": "low","additional_fee": 0
},{
"name": "medium","additional_fee": 19
},{
"name": "high","additional_fee": 39
}
]
}
],"path": "additional_questions","reason": {}
}
}
}
}
}
}
我最终希望值模型具有尽可能多的嵌套的Additional_questions,而且我不确定是否通过引用自身正确创建了模型。有其他方法吗?