我有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'處理程序來處理承諾的拒絕狀態 –