1

空のデータベースがあり、TypeError: Cannot read property 'id' of undefined を取得しています

未定義の変数をチェックする方法がわからない、またはこのチェックを db モデルに含める必要があるかどうかさえわからない

特急ルート

    app.all("/", function(req, res){  
      if(!req.isAuthenticated()) req.user = null;    
      Bid.findHighestBids(function(err, bids){
        if(err) throw err;
        User.findHighestBidder(bids[0].id, bids[0].amount, function(err, highest){
          if(err) throw err;
          highest.amount = bids[0].amount;  
          res.render("home", {user: req.user, bids: req.bids, highest: highest}); 
        });      
      });
    });

モデルからのスニペット (データがないため、何も返されません。これが問題です)

    BidSchema.statics.findHighestBids = function(done){
      var Bids = this; 
      var num = 5;  
      this.find()
      .sort('-amount')
      .limit(num)
      .exec(function(err,bids){
        if(err) throw err;
        done(null, bids);
      });   
    }

    UserSchema.statics.findHighestBidder = function(id, amount, done){
      var User = this; 
      this.findOne({ 'facebook.id' : id }, function(err, highest){
        if(err) throw err;
        if(!id) return done(null, highest);
        done(null, highest);
      });  
    }
4

1 に答える 1