Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs Angular不发送对象中的对象_Angularjs_Node.js_Mongodb_Express_Mongoose - Fatal编程技术网

Angularjs Angular不发送对象中的对象

Angularjs Angular不发送对象中的对象,angularjs,node.js,mongodb,express,mongoose,Angularjs,Node.js,Mongodb,Express,Mongoose,我将此JSON与Angular.js一起发送到node.js/express.js服务: { "name": "MyGuitar", "type": "electric", "userid": "123", "likes": 0, "dislike": 0, "guitarParts": { "body": { "material": "/content/img/hout.jpg", "_id": "5566d6af274e63cf4f790858", "co

我将此JSON与Angular.js一起发送到node.js/express.js服务:

{
  "name": "MyGuitar",
  "type": "electric",
  "userid": "123",
  "likes": 0,
  "dislike": 0,
  "guitarParts": {
"body": {
  "material": "/content/img/hout.jpg",
  "_id": "5566d6af274e63cf4f790858",
  "color": "#921d1d"
},
"head": {

},
"neck": {
  "material": "/content/img/hout.jpg",
  "_id": "556d9beed90b983527c684be",
  "color": "#46921d"
},
"frets": {

},
"pickup": {

},
"bridge": {

},
"buttons": {

}
} }

吉他部件不保存在MongoDB数据库中。 Mongoose插入以下内容:

Mongoose:guitars.insert({name:'myGuitars',type:'electric',userid:'123',likes:0,_-id:ObjectId(“557023AF9B321B541D416E”),guitarParts:[],_-v:0})

这是我的猫鼬模型:

   guitarPart = new Schema({  
   id: { type: String, required: true },  
   color: { type: String, required: true },  
   material: { type: String, required: true },  
   x: { type: Number, required: false },  
   y: { type: Number, required: false },  
   width: { type: Number, required: false },  
   height: { type: Number, required: false},  
});  

guitarParts = new Schema({  
    body: [guitarPart],  
    neck: [guitarPart],  
    head: [guitarPart],  
    bridge: [guitarPart],  
    frets: [guitarPart],  
    pickup: [guitarPart],  
    buttons: [guitarPart]  
});  

guitar = new Schema({  
    name: { type: String, required: true, unique: false },  
    type: { type: String, required: true },  
    userid: { type: String },  
    likes: { type: Number },  
    dislikes: { type: Number },  
    guitarParts: [guitarParts],  
    kidsguitar: { type: Boolean },  
    lefthanded: { type: Boolean },  
    assemblykit: { type: Boolean }  
},  
{   
    collection: 'guitars'   
});  

我不知道出了什么问题。有什么想法吗?

根据mongoose的子文档说明:子文档是具有自己模式的文档,它们是父文档数组的元素

在您提供的模式中:guitarParts不是数组,它是一个对象,guitarPart不是数组,它也是一个对象。这就是为什么它不是储蓄

因此,正确的模式建模方法是:

var guitarDefinition = {
  _id: {type: String, required: true},
  color: {type: String, required: true},
  material: {type: String, required: true},
  x: Number,
  y: Number,
  width: Number,
  heigth: Number
};

var guitarSchema = Schema({
  name: { type: String, required: true, unique: false },  
  type: { type: String, required: true },  
  userid: String,  
  likes: Number,  
  dislikes: Number ,  
  kidsguitar: Boolean,  
  lefthanded: Boolean ,  
  assemblykit: Boolean,

  guitarParts: {
    body: guitarDefinition,  
    neck: guitarDefinition,  
    head: guitarDefinition,  
    bridge: guitarDefinition,  
    frets: guitarDefinition,  
    pickup: guitarDefinition,  
    buttons: guitarDefinition 
  }
});

实际上,我已经在我的计算机上运行了,它正在保存。你可以在这里看到我的完整代码:

根据mongoose的子文档说明:子文档是具有自己模式的文档,它们是父文档数组的元素

在您提供的模式中:guitarParts不是数组,它是一个对象,guitarPart不是数组,它也是一个对象。这就是为什么它不是储蓄

因此,正确的模式建模方法是:

var guitarDefinition = {
  _id: {type: String, required: true},
  color: {type: String, required: true},
  material: {type: String, required: true},
  x: Number,
  y: Number,
  width: Number,
  heigth: Number
};

var guitarSchema = Schema({
  name: { type: String, required: true, unique: false },  
  type: { type: String, required: true },  
  userid: String,  
  likes: Number,  
  dislikes: Number ,  
  kidsguitar: Boolean,  
  lefthanded: Boolean ,  
  assemblykit: Boolean,

  guitarParts: {
    body: guitarDefinition,  
    neck: guitarDefinition,  
    head: guitarDefinition,  
    bridge: guitarDefinition,  
    frets: guitarDefinition,  
    pickup: guitarDefinition,  
    buttons: guitarDefinition 
  }
});

事实上,我已经在我的电脑中运行,它正在保存。你可以在这里看到我的完整代码:

打字
吉他手
->
吉他手
?谢谢你的回答。我试过了,但还是不起作用。打字错误
吉他手
->
吉他手
?谢谢你的回答。我试过了,但还是不起作用。打字错误
吉他手
->
吉他手
?谢谢你的回答。我试过了,但还是不行。