Sequelize - 如何访问M:M中的连接表

时间:2016-05-06 11:56:43

标签: javascript sequelize.js

我正在使用Sequelize,HAPI和MySQL。

我有两个模型,通过自动创建的链接表有M:M。

这就是我制作M:M的方式:

Project.belongsToMany(models.ProjectTag, {through: 'ProjectToProjectTags'});
ProjectTag.belongsToMany(models.Project, {through: 'ProjectToProjectTags'});

该语句使第三个表名为ProjectToProjectTags。

现在,当我想创建一个标签并将其分配给一个项目时,我尝试以下代码:

newTag.TagName = request.payload.tagname;
    newTag.TagDescription = request.payload.tagdescription;

    models.ProjectTag.create(newTag).then(function (newTagCreated) {
        var newTagToProject = {};
        newTagToProject.ProjectTagId = newTagCreated.id;
        newTagToProject.ProjectId = ProjectId;
        models.ProjectToProjectTag.create(newTagToProject).then(function
        (newTagCreated) {
            response(newTagCreated).code(200);
        })
    })

代码在第二个创建行失败:

models.ProjectToProjectTag.create

ProjectToProjectTag 模型不存在,因为它是自动创建的。我该怎么做这个更新?

1 个答案:

答案 0 :(得分:0)

您说它会创建模型ProjectToProjectTags,但您使用ProjectToProjectTag。猜猜你应该把它改成ProjectToProjectTags(复数)。

所以

models.ProjectToProjectTags.create

而不是

models.ProjectToProjectTag.create