2012-10-13 17 views
5

Bir bulma sorgum var ve boş bir belgeyi iade edip etmediğimi doğruladığımda, 'mülk' kullanıcı adını okuyamıyor 'diyerek bir hata atıyorum boş'. Bu happend i if (! Doc.username) içinde doc.username erişmesine çalıştığınızda {Node.js ve mongoose (mongodb) hatası '' null özelliği sıfırlayamıyor '' null

Kodum:

function checkAccDb(username, password) { console.log(2); 
    /* Check if accounts exists in db */ 
    db.findOne({username: username}, function(err, doc){ console.log(3); 
     if(err) throw err; 

     if(!doc.username) { 
      add2stack(username, password); 
     } 
     else if(doc.status == 200) { 
      end(username, password, 1000); 
     } 
     else if(doc.status == 401) { 
      if(doc.password == password) 
       end(username, password, 401); 
      else 
       add2stack(username, password); 
     } 
     else { 
      add2stack(username, password); 
     } 
    }); 
} 

kimse burada bana neler açıklayabilir misiniz?

Teşekkürler!

+0

Hatayı almak için hangi satırı alıyorsunuz? –

cevap

9

Sorgu başarılı ancak hiçbir eşleşme bulamadı, bu nedenle hem err hem de doc boştur. doc'un boş olup olmadığını kontrol etmeli ve bu durumu uygun şekilde halledin.

0

Tipik bir uygulama şeyler aşağıdaki çözüm onay almak için bu

db.findOne({username: username},function(err, doc) { 
    if (err) { 
    // handle error 
    } 
    if(doc != null) 
    { 
    if(!doc.username) 
    { 
     //handle case 
    } 
    else 
    { 
     //handle case 
    } 
    } 
}); 
0

gibi olurdu. 1. Tanımladığınız model ismini veya tüm modellerin mevcut olduğu klasörün ismini doğru olarak kontrol etmelisiniz, çünkü tüm modellerimi tanımladığım modeller klasöründe benim için farklı bir model adı kullanıyordum. modele göre, bu hatayı alıyorum. 2. Bulunduğu şema adını veya klasör adını kontrol edin.

İlgili konular