2

相互に依存する 2 つのデータベース クエリを作成しなければならない場合がたくさんあります。しかし、js の非同期性のため、これらのクエリ リクエストの順序を設定することはできません。私が使用している回避策は、クエリの 1 つを別のクエリのコールバックに配置することです。私のアプローチはうまくいっているようですが、これを行うためのより良い方法があるかどうか知りたいですか?

コード例:

app.get('/tweet', function(req,res){

  User.findOne({ twitterID: req.user.id },
    function(err, user) { 
        if (user){
             var votedPosts = user.votedPosts;
                Post.find(function (err, posts) {
                    if(posts){
                    for (var i = 0; i < posts.length; i++){
                        for (var j = 0; j < votedPosts.length; j++){
                          if(votedPosts[j]._id == posts[i]._id){
                            posts[i].votetype = votedPosts[j].votetype;
                          }
                          else{
                            console.log("this is getting called");
                            posts[i].votetype = 0;
                          }
                        }
                    }
                    res.send(posts);
                  }
                });
          }
    });
});
4

1 に答える 1