为什么mongoose给我[object Object]

时间:2014-06-11 12:01:10

标签: node.js mongodb mongoose

我有一个mongoose架构定义为:

var Theme = mongoose.model( 'Theme', {
id: String,
name: String,
background: {
    url: String,
    color: String
},
text: {
    color: String,
    highlight: String
},
paper: {
    background_color: String,
    opacity: Number,
    font: {
        family: String,
        size: Number,
        color: String
    },
    font_shadow: {
        x: Number,
        y: Number,
        blur: Number,
        color: String,
        opacity: Number
    },
    border: {
        size: Number,
        type: String,
        color: String,
        opacity: Number
    },
    shadow: {
        x: Number,
        y: Number,
        blur: Number,
        spread: Number,
        color: String,
        opacity: Number
    }
} 
});

架构在适当的node.js文件中定义。 我的数据库中有相应的文档:

_id: ObjectId("5397557574c5e235160008c5"),
id: "scifi-1",
name: "Sci-fi light",
background: {
   url: "/bgr/1.jpg",
   color: "#223388"
},
text: {
   color: "#333333",
   highlight: "#555555"
},
paper: {
   background_color: "#444444",
   opacity: 0.8,
   font: {
     family: "anonymous",
     size: 14,
     color: "#888888"
   },
   font_shadow: {
     x: 0,
     y: 0,
     blur: 5,
     color: "#123456",
     opacity: 0.5
   },
   border: {
     size: 1,
     type: "solid",
     color: "#666666",
     opacity: 0.8
   },
   shadow: {
     x: 0,
     y: 0,
     blur: 5,
     spread: 0,
     color: "#ff0000",
     opacity: 0.5
   }
}

这里的问题是,通过ajax调用成功检索数据库文档后,一切都很好,除了" border"拥有[object Object]类型的数据,正如您所看到的那样,它不应该是什么。

以下是output,以防万一。

知道我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

原因似乎是你不能使用"输入"作为变量名称。要么我必须使用不同的名称,要么我可以这样定义:

...
type: {type: String}
...

感谢https://stackoverflow.com/a/14755185/820948 由于限制,将在2天内将其标记为已解决。