使用body-parser访问mongoose模式数组

时间:2016-04-30 03:41:16

标签: node.js mongoose body-parser

以下是一个示例架构:

var schema = mongoose.Schema;

var userSchema = new schema ({
username: {type: String},
hobby: [{
    indoor: {
        type: {type: String},
        description: {type: String}
    },
    outdoor: {
        type: {type: String},
        description: {type: String}
    }

}]
});

module.exports = mongoose.model('User', userSchema);

所以,一个非常简单的架构。它要求输入用户名,然后要求用户列出他们的爱好,并在室内和室外爱好之间以及阵列内部进行分配。

使用body-parser,我可以在表单输入中找到一个用户名:

var user = new User();
user.username = req.body.username;

这很简单。但是我怎样才能达到数组内部的爱好?我试过了:

user.hobby.indoor.type = req.body.type

但这不起作用;它只是给了我一个错误。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

以下代码可帮助您正确访问密钥。由于业余爱好是一个数组,您需要提供一个索引来获取其对象。点表示法与对象一起使用

user.hobby[0].indoor.type

Js Fiddle:https://jsfiddle.net/x18nyd2e/

答案 1 :(得分:0)

所以我最终找到了问题的答案。以下是该做什么的示例:

var user = new User();
user.username = req.body.username;
user.hobby = {{
    indoor: {
        type: req.body.type,
        description: req.body.description
    }
}];

这就是你如何到达数组内的属性。