본문 바로가기

node-js

node js네서 sequelize 로 한번에 두번 객체 반환받기

디비 설계를 잘못했을까?

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);

});

 

간단하게 이렇게 하면 되는것을 넘 오랫동안 찾았다.