0

私は非同期 npm の filterSeries を使用していますが、オブジェクトで Truthy next を呼び出すと、何らかの理由でユーザーのみが渡され、クエリから取り出されようとしている部分は渡されません...

私のコードの何が問題なのか、またはこれを行うためのより効率的な方法がある場合は、 $in または何かを実行する代わりに、各ユーザーをループしてクエリを呼び出すことは悪い考えだと聞いたが、その方法がわからない.

主なことは、両方のドキュメントを結合してデータとしてフィードバックしたいということです...

コードは次のとおりです。

exports.searchContactPost = function(req, res) {
  if(req.body.searchContacts === '') { res.send('Oops you searching for nothing, well here is nothing!'); };
    async.waterfall([
        function(callback) {
            User.find({$or:[
                {firstName: req.body.searchContacts.toLowerCase()},
                {lastName: req.body.searchContacts.toLowerCase()},
                {email: req.body.searchContacts.toLowerCase()}]
            }, function(err, users) {
                if(err || users.length === 0) { res.send(err);}
                callback(null, users)

            });
        },
        function(users, callback) {
            async.filterSeries(users, function(user, next) {
                console.log(user);
                Friend.findOne({userId: req.signedCookies.userid, friend_id: user}, function(err, friend) {
                    if(err) {
                        console.log("houston we got a problem.")
                    }
                    var object = {'fav': friend.favorites, 'notes': friend.notes, 'labels': friend.labels, 'user': user, 'status':friend.friend_status};
                    console.log(friend);
                    next(object.status === 3);
                })
            }, function(friendResults){
                console.log(friendResults);
                callback(null, friendResults);
            });
        }
    ],

    function(err, results) {
        res.render('contactListResults', {title: 'Weblio', friendsFound: results});
    }); 
};
4

1 に答える 1