그래서 저는 클래스와 코스라는 두 개의 테이블이 있습니다. 각 클래스에는 코스 테이블에있는 코스 유형을 정의하는 course_id가 있습니다. 내 모델은 다음과 같습니다.
const Class = sequelize.define('class', {
class_date: Sequelize.DATE,
begin_time: Sequelize.TIME,
end_time: Sequelize.TIME,
max_capacity: Sequelize.INTEGER,
is_published: Sequelize.BOOLEAN,
training_facility_id: Sequelize.INTEGER,
state_id: Sequelize.INTEGER,
registration_deadline: Sequelize.DATE,
course_id: Sequelize.INTEGER,
is_report_60_generated: Sequelize.BOOLEAN,
completed_by_user_id: Sequelize.INTEGER
}, {
timestamps: false,
freezeTableName: true
})
const Course = sequelize.define('course', {
code: Sequelize.STRING,
name: Sequelize.STRING
}, {
timestamps: false,
freezeTableName: true
})
클래스 엔드 포인트에 도달하면 클래스 배열을 얻습니다. course_id 대신 각 클래스의 코스 이름과 코드로 응답하도록 쿼리를 설정하려면 어떻게해야합니까?
과 모델 사이 에 관계 를 만들어야합니다 . 모델 정의에서 옵션 을 지정하면 카멜 케이스를 사용하지 않고 자동으로 열을 생성 하므로 정의 할 필요가 없습니다 (아마도 마찬가지입니다 ).Class
Course
underscored: true
Class.course_id
completed_by_user_id
const Class = sequelize.define('class', {
class_date: Sequelize.DATE,
begin_time: Sequelize.TIME,
end_time: Sequelize.TIME,
max_capacity: Sequelize.INTEGER,
is_published: Sequelize.BOOLEAN,
training_facility_id: Sequelize.INTEGER,
state_id: Sequelize.INTEGER,
registration_deadline: Sequelize.DATE,
// this will be auto-created by the relationship
// course_id: Sequelize.INTEGER,
is_report_60_generated: Sequelize.BOOLEAN,
// you probably want a relationship here as well
completed_by_user_id: Sequelize.INTEGER
}, {
timestamps: false,
freezeTableName: true,
// use underscored names
underscored: true,
})
const Course = sequelize.define('course', {
code: Sequelize.STRING,
name: Sequelize.STRING
}, {
timestamps: false,
freezeTableName: true,
underscored: true,
})
데이터 모델을 기반으로 각이있는 것처럼 보인다 Class
관련이 필요합니다 Course
각 당신이 Sequelize을 말할 것이다, 그래서 등 시작 시간 같은 다른 속성과 .Class
belongsTo()
Course
// tell Sequelize that once course will be assigned to many classes, and it is required (not null)
Class.belongsTo(Course, { foreignKey: { allowNull: false } })
관련이 있으면 include
옵션 값을 사용하여 기본 쿼리에 조인 할 모델을 지정할 수 있습니다. as
관계에서 사용 하는 경우 여기에서도 지정해야합니다.
// do a joined query using "include"
Class.findAll({
include: [
{
model: Course
}
]
})
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다