私はMongooseJSを使用しています。以下のエラーが表示されます。
{ message: 'Cast to ObjectId failed for value "" at path "parent"',
name: 'CastError',
type: 'ObjectId',
value: '',
path: 'parent'
}
このオブジェクトの親を設定したくありません。どこが間違っていますか?私は何をすべきか?
アップデート:
var category = new Category(req.body)
if(typeof category.parent === 'undefined'){
category.parent=undefined;
}
カテゴリ スキーマは次のとおりです。
var CategorySchema = new Schema({
name: {
tr: {type : String, default : '', trim : true},
en: {type : String, default : '', trim : true}
},
description: {
tr: {type : String, default : '', trim : true},
en: {type : String, default : '', trim : true}
},
subcategories:[{type : Schema.ObjectId, ref : 'Category', null: true}],
parent: {type : Schema.ObjectId, ref : 'Category', null: true},
products:[{type : Schema.ObjectId, ref : 'Product'}],
images : [String],
order: {type : Number, default: 0},
createdAt : {type : Date, default : Date.now},
locale: {type : String, null: false}
})
私の翡翠のコードは次のとおりです。
.controls
select#parent(name="parent")
option(value="") Select
each cat in categories
- if (category.subcategories.map(function(e) { return e.id; }).indexOf(cat.id) != -1)
option(value=cat.id, selected) #{cat.name.tr}
- else
option(value=cat.id) #{cat.name.tr}
したがって、ユーザーが親を選択しない場合、サーバーに「」が送信され、サーバーはそのエラーを返します。