2016-07-10 17 views
0

Getting immer wenn ich find() verwende, um innerhalb des zurückgegebenen Objekts zu überprüfen.Getting TypeError: Objekt hat keine Methode 'finden'

Ich habe keine Ahnung, wie in dem Objekt erhalten sonst bekomme ich den gleichen Fehler, wenn findOne(), forEach() etc. etc.

getChannels.findOne(query, function(err, data){ 
       if(data){ 
        data.banlist.find(function(list){ 
         var currentTime = Date.now(); 
         var banTime = list ? list.bantime : ""; 
         if(currentTime >= banTime){ 
          var index = data.banlist.indexOf(list); 
          data.banlist.splice(index, 1) 
          data.save(); 
         } 
        }) 
       }  
      }) 
}) 
+0

versuchen, Daten zu protokollieren – meda

Antwort

0

Documents can be retrieved through several static helper methods of models.

in dem obigen Zitat Dokument mit Mitteln, um den Datenbank-Datensatz.

Wenn Sie .findOne(query, function(err, data) tun, erhalten Sie zurückgegebene Dokumente oder ein Dokument. findOne ist in diesem Fall ein Dokument (ein Datensatz). Sie sehen, dass Sie ein Dokument zurückbekommen, kein Model. Um eine Abfrage-Methode verwenden müssen Sie es auf einem Modell verwenden.

Ich nehme an, getChannels ist ein Modell, also wenn Sie ein Dokument zurückgeben. Sie könnten etwas anderes von getChannels im Callback bekommen.

eine Sache wie diese. nicht funktionierender Code.

getChannels.findOne(query, function(err, data){ 
       if(data){ 
        //query anyother Model or collection 
        getChannels.find(function(list){ 
         var currentTime = Date.now(); 
         var banTime = list ? list.bantime : ""; 
         if(currentTime >= banTime){ 
          var index = data.banlist.indexOf(list); 
          data.banlist.splice(index, 1) 
          data.save(); 
         } 
        }) 
       }  
      }) 
}) 
Verwandte Themen