Как обновить дочерний элемент строки добавить внешний ключ

#node.js #foreign-keys #sequelize.js

Вопрос:

У меня есть эти две модели:

 module.exports = (sequelize, Sequelize) => {
    const Image = sequelize.define("Image", {
        url: {
            type: Sequelize.STRING,
            validate: {
                notEmpty: true,
            }
        },
        public_id: {
            type: Sequelize.STRING,
            validate: {
                notEmpty: true,
            }
        },
        alt: {
            type: Sequelize.STRING,
            validate: {
                notEmpty: true,
            },
        },
        not_link: {
            type: Sequelize.BOOLEAN,
            validate: {
                notEmpty: true,
            },
            defaultValue: false
        },
    });

    Image.associate = models => {
        Image.belongsToMany(models.Project, {
            as: 'projects',
            through: "project_image"
        });
        Image.belongsToMany(models.Page, {
            through: "page_image"
        });
    };

    return Image;
};
 
 module.exports = (sequelize, Sequelize) => {
    const Project = sequelize.define("Project", {
        title_fr: {
            type: Sequelize.STRING,
            validate: {
                notEmpty: true,
            }
        },
        title_en: {
            type: Sequelize.STRING,
            validate: {
                notEmpty: true,
            }
        }
    });

    Project.associate = models => {
        Project.belongsTo(models.Image, {
            as: 'cover',
            foreignKey: {
                name: 'cover_img_id',
                allowNull: false
            }
        });
        Project.belongsToMany(models.Image, {
            as: 'medias',
            through: "project_image"
        });
    };

    return Project;
};
 

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

Это моя последняя попытка:

 exports.updateOneProject = (req, res) => {
    const id = req.params.id;
    const projectObject = {
        ...req.body
    }
    if(req.files){
        let files= [];
        req.files.forEach(function(file){
            console.log(file)
            files.push(
                {
                    url: file.path,
                    alt: file.alt,
                    public_id:file.filename
                }
            )
        });
        projectObject.medias=files
    }
    Project.update(projectObject, {
        where: { id: id }
    })
        .then(num => {
            if (num == 1) {
                res.send({
                    message: "Project was updated successfully."
                });
            } else {
                res.send({
                    message: `Cannot update Partner with slug=${id}. Maybe Partner was not found or req.body is empty!`
                });
            }
        })
        .catch(err => {
            res.status(500).send({
                message: "Error updating Partner with slug="   id
            });
        });
};
 

And my route:

 router.put('/:id',  multer.array('images'),  updateOneProject);
 

Ошибка отсутствует, все переменные определены, запрос возвращает 200, но изображения не хранятся в базе данных. Я хочу, чтобы новое изображение хранилось в базе данных, а новое отношение-в промежуточной таблице project_image. При создании проекта проблем нет, но обновление невозможно.