디비 설계를 잘못했을까?
ORM사용하다 보면 넘 힘든 부분이 많다 특히 aysnc기반에 node js에서는 더욱 그렇다
일단 나의 상황을 설명하자면
user라는 객체를 조회하고
contact이라는 객체를 조회하는 작업을 해야했다
뭐 콜백에서 user먼저 조회하고 그다음에 contact를 조회하면 되지만
왠지 썩 좋은 방법은 아닌것같다 잘은 모르지만 node js의 단점중 하나는 콜백 관리
특히 많은 인력이 한 프로젝트를 하다보면 제 각기 다른 포맷의 코딩 패턴을 가지고 있다.
다 관리하기는 거의 힘든 부분
암튼 서론이 길었다. 나의 문제의 해결책은
Promise
Promise.all([
Contact.findAll({
where: { email: email},
include: [{
model: ContactPoint,
as: 'asContactPoint'
}]
}),
TeamUser.findAll({
where: { teamId:teamId },
include: [
{
model: User,
attributes: ['email', 'firstname', 'lastname', 'avatar']
}
]
})
]).then(r=>{
res.json(r);
});
간단하게 이렇게 하면 되는것을 넘 오랫동안 찾았다.