일부 결과 데이터를 첨부하기 위해 결과 집합을 반복하고 각 결과에 대해 다른 쿼리를 실행하는 데 문제가 있습니다.쿼리 결과를 반복하고 QueryChainer를 사용하여 각 결과에 대해 다른 쿼리를 실행하십시오.
Sequelize.js에 대한 Github 문제를 살펴본 결과 use QueryChainer to achieve this 일 수 있음을 알았습니다. 그러나, 나는 아직도 이것에 초심자이기 때문에, 나는 이렇게하는 방법을 알아낼 수 있었다 havent. 내 for
루프가 비동기 적으로 실행되어 추가 데이터없이 응답이 전송됩니다. 여기
내가 지금 그것을하고 있어요 방법은 다음과 같습니다 응답에
// in blogs.js
var db = require('../models')
exports.findPosts = function(req, res) {
if (req.User) {
req.User.getPosts({
include: [
{ model: db.User, attributes: ['displayName', 'profilePicture'] },
{ model: db.Game, attributes: ['name'] }
]
}).success(function(posts) {
console.log('Starting the loop...')
for (var i in posts) {
db.PostLikes.count({ where: { PostId: i.id } }).success(function(likes) {
i.Likes = likes
console.log('Fetched Likes for post #' + i.id)
})
}
console.log('This should appear last!')
res.json(posts)
}).error(function(err) {
console.log(err)
res.send(404)
})
} else {
res.send(404)
}
}
위 코드의 결과는 각 post
항목에 추가 된 Likes
속성없이 전송된다. console.log
은 db.PostLikes.count()
호출의 비동기 특성으로 인해 순서가 잘못되었습니다.
누군가가 나를 달성하기 위해 QueryChainer를 사용하는 방법을 보여줄 수 있다면 엄청난 도움이 될 것입니다.