我有sequelize定义2个模型项目模型和任务模型如下图所示创建主键和外键关系
import { INTEGER, STRING, DATE } from 'sequelize';
import sequelize from '../sequelize';
import Task from './task.model'
const ProjectModel = sequelize.define('project', {
project_id: {
type: INTEGER,
primaryKey: true,
autoIncrement: true
},
phabricator_project_id: {
type: STRING,
allowNull: false
},
name: {
type: STRING
},
description: {
type: STRING
},
start_date: {
type: STRING,
},
end_date: {
type: STRING
}
},
{
timestamps: false
}
);
export default ProjectModel;
和任务模式
import { INTEGER, STRING, DATE } from 'sequelize';
import sequelize from '../sequelize';
const TaskModel = sequelize.define('task', {
task_id: {
type: INTEGER,
primaryKey: true,
autoIncrement: true
},
title: {
type: STRING
},
status: {
type: STRING
},
priority: {
type: STRING
},
description: {
type: STRING
},
tool_project_id: {
type: STRING
},
date_modified: {
type: STRING
}
},
{
timestamps: false
}
);
export default TaskModel;
我想达到什么是创建TaskModel中的tool_project_id和ProjectModel中的phabricator_project_id之间的关系(它们是相同的值,只给出diff列名称),并写入GET请求的查询,该请求以下面显示的形式输出数据
{ {project1Details,TaskDetails-->{task1, task2, task3}, {project2Details,TaskDetails-->{task4, task5, task6}, {project3Details,TaskDetails-->{task7, task8, task9}, {project4Details,TaskDetails-->{task10, task11, task12} }
所有的数据库设计已经完成,并调用另一个文件来创建所有这些数据库。这是写在打字稿,我在这个方法中,我定义的关系,并试图列出所有“打开”任务,并把他们送回作为响应试图以此为GET方法
listByProjects(req, res) {
TaskModel.belongsTo(ProjectModel, { as: 'task' , foreignKey: 'tool_project_id'});
ProjectModel.findAll({
include:[{model:TaskModel}],
where:{status:'open'}
}).then(function(projects) {
res.json(projects);
});
}
这里,但我得到的错误
Unhandled rejection Error: task is not associated to project!
任何有助于该问题的WONDERFULL
使用'catch'处理程序来处理承诺的拒绝状态 –