[Node.js] mongoose의 비동기식 처리

때문에…

[javascript]
app.get(‘/p/:id/:title’, function(req, res){
var to = req.params.id;
var disCount, diffCount, likeCount, sameCount, queCount, allCount;
Comments.find({‘to’:to, ’emotion’:’불만이 있습니다.’}).count(function(err, count){
disCount = count;
Comments.find({‘to’:to, ’emotion’:’다르게 생각합니다.’}).count(function(err, count){
diffCount = count;
Comments.find({‘to’:to, ’emotion’:’좋아합니다.’}).count(function(err, count){
likeCount = count;
Comments.find({‘to’:to, ’emotion’:’공감하고 있습니다.’}).count(function(err, count){
sameCount = count;
Comments.find({‘to’:to, ’emotion’:’궁금해 합니다.’}).count(function(err, count){
queCount = count;
Comments.find({‘to’:to}).count(function(err, count){
allCount = count;
res.render(‘presentation’, {‘port’:port, ‘username’:req.session.username, ‘p_id’:req.params.id, ‘title’:req.params.title,’disCount’:disCount, ‘diffCount’:diffCount, ‘likeCount’:likeCount, ‘sameCount’:sameCount, ‘queCount’:queCount, ‘allCount’:allCount});
});
});
});
});
});
});
});
[/javascript]

이게 뭔짓인가 싶네요.. 뭔가 깔끔한 방법 없을까요? ㅠㅠ


3 thoughts on “[Node.js] mongoose의 비동기식 처리”

  1. 사실 저건 몽구스의 방식이 아닌 node.js의 방식인데…. 아직 정확한 답은 찾지 못함… 기능에 따라 모듈도 분리하면 req, res도 들고 다녀야함.. ㅠㅠ 메일링에 좀 물어보려 했으나 영어까 짧아서 대답을 제대로 못들음 ㅎ

  2. 생각해보니까 위에 코드에는 또 다른 문제가 있었군요. 병렬 처리를 사용하면 될 것을 굳이 순차적인 처리를 하고 있다는 문제가 있네요.

    비동기식 API를 가지고 동기식 처리하는 것은 어쩔 수 없다손 치더라도.. 병렬 처리할 수 있는 작업인듯 보이는데, 아마도 제가 댓글에 걸어둔 링크는 바로 그걸 해결하는데 필요한 라이브러리처럼 보이는군요.. 흠…

Leave a Reply

Your email address will not be published. Required fields are marked *