NodeJS Mongoose помещает объекты в массив ссылок на объекты - PullRequest
0 голосов
/ 03 сентября 2018

Это схема, которую я использую:

var skillSchema = new mongoose.Schema({
    skill_name: String
});

var Skill = mongoose.model("Skill", skillSchema);

var userSchema = new mongoose.Schema({
    name: String,
    role: String,
    age: Number,
    skills: [
        {
            type: mongoose.Schema.Types.ObjectId,
            ref: "Skill"
        }
    ]
});

var User = mongoose.model("User", userSchema);

И это данные JSON, которые передаются через Postman для создания пользователя с навыками.

{
    "name" : "Name of user",
    "role" : "Developer",
    "age" : 20,
    "skills" :
    [
        {
            "skill_name" : "Skill name 1"
        },
        {
            "skill_name" : "Skill name 2"
        }
    ]
}

Я не могу вставить объект навыка в объект пользователя. Это код, который успешно создает пользователя и навык, но не может выдвинуть навык в пользователя.

app.post('/users', function(req, res) {

        User.create({
            name: req.body.name,
            role: req.body.role,
            age: req.body.age
        }, function(err, user){
            if (err) {
                console.log(err);
            } else {

                var skillsArray = req.body.skills;
                for (var i = 0; i <= skillsArray.length; i++) {
                    Skill.create(skillsArray[i],
                    function(err, skill) {
                        if (err) {
                            console.log(err);
                        } else {
                            console.log(skill)
                            user.skills.push(skill);
                        }
                    });
                }
                user.save(function(err, data) {
                    if (err) {
                        console.log(err);
                    } else {
                        res.json({status: 200, message: "User Created!", _id: data._id});
                        console.log("User Created");
                        console.log(user)        
                    }
                });

            }
        });

});

Пожалуйста, помогите. Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...