associations - 续集关联
问题描述
我是续集的新手,一直在探索关联。我正在使用 mysql 5.6 并续集 ^4.42.0。我正在尝试创建两个简单的表:PRJS & TASKS 并将一些数据插入这些表中。
通过以下代码片段,我试图一次性将数据插入“PRJS”以及“Tasks”表中。
但它只是将数据插入 PRJS 表中,尽管这两个表都已创建。
const http = require("http");
const express = require("express");
const Sequelize = require("sequelize");
const router = require("./routes/api-routes");
const sequelize = require("./config/db");
const Prj = sequelize.define('prj', {
id :{
type:Sequelize.INTEGER,
autoIncrement:true,
primaryKey:true
},
title: Sequelize.STRING,
description: Sequelize.TEXT
});
const Task = sequelize.define('task', {
details: Sequelize.STRING,
});
Prj.hasMany(Task);
Task.belongsTo(Prj);
Prj.create(
{
title:"a",
description:"asdfasfasd",
tasks:[{
details:"asfasdfasd"
}],
include:[Task]
}
);
以下是我在上面的代码中导入的 db.js 文件的内容:
const Sequelize = require("sequelize");
const sequelize = new Sequelize("test_db","test","123456",{
dialect:"mysql",
host:"localhost",
port:3306
});
module.exports = sequelize;
任何帮助深表感谢。
谢谢,拉希里
解决方案
- 创建关联时使用“as”。
Prj.hasMany(Task, { as: 'Tasks' });
Task.belongsTo(Prj);
- 包含应如下所示:
Prj.create(
{
title:"a",
description:"asdfasfasd",
tasks:[{
details:"asfasdfasd"
}],
{
include: [{
model: Task,
as: 'Tasks'
}]
}
}
);
试着写下结果会发生什么。