我有一个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;
我的问题是:保存此数据的正确方法是什么?我可以举出使用FindOrCreate
或upsert
的示例,但是我不确定执行此操作的正确方法是什么。在这种情况下找不到文档-仅用于创建,而不用于更新。
谢谢!