使用hasMany关联关系对保存模型进行排序

时间:2019-03-19 19:48:19

标签: javascript sequelize.js

我有一个Domains模型,该模型与Links有一对多关联。我想创建或更新/忽略是否存在Domains,并创建或更新/忽略是否存在Links

这里是Domains

const Domains = sequelize.define('Domains', {
    id: {
        type: Sequelize.INTEGER,
        autoIncrement: true,
        primaryKey: true,
        allowNull: false
    },

    domain: {
        type: Sequelize.STRING
    }
});

Domains.associate = function(models) {
    Domains.hasMany(models.Links, { onDelete: 'CASCADE' });
};

这里是Links

const Links = sequelize.define('Links', {
    id: {
        type: Sequelize.INTEGER,
        autoIncrement: true,
        primaryKey: true,
        allowNull: false
    },

    path: {
        type: Sequelize.STRING
    }
});

Links.associate = function(models) {
    Links.belongsTo(models.Domains, { onDelete: 'CASCADE' });
};

现在我要保存一个网址:

{
    "url": "https://asd.me/asdasdasd",
}

要保存它,我可以使用节点url模块来获取域和路径:

const url = require('url');
// ...

router.post('/new', function(req, res, next) {

    const parsedUrl = url.parse(req.body.url);
    const domain = parsedUrl.hostname;
    const path = parsedUrl.pathname;
    // ...
});

export default router;

我的问题是:保存此数据的正确方法是什么?我可以举出使用FindOrCreateupsert的示例,但是我不确定执行此操作的正确方法是什么。在这种情况下找不到文档-仅用于创建,而不用于更新。

谢谢!

0 个答案:

没有答案