Bu kodu vardır: Uygulamanın kimlik doğrulama diğer tür destekler yanaÖzellik var olduğunda, mongoose modelinin hasOwnProperty öğesi neden yanlış döndürülüyor?
user.findOne({ 'email' : email }, function(err, User)
{
if (err)
{
return done(err);
}
if (!User)
{
return done(null, false, { error : "User not found"});
}
if (!User.hasOwnProperty('local') || !User.local.hasOwnProperty('password'))
{
console.log("here: " + User.hasOwnProperty('local')); // displays here: false
}
if (!User.validPass(password))
{
return done(null, false, { error : "Incorrect Password"});
}
return done(null, User);
});
, ben istiyorum giriş sırasında Yani
local : { password : "USERS_PASSWORD" }
benziyor yerel denilen nesneyi yuvalanmış olan bir kullanıcı modeli Kullanıcının bir şifre sağlayıp sağlamadığını kontrol et ama bu ilginç problemle karşılaştım. Testim nesne şöyle görünür:
{ _id: 5569ac206afebed8d2d9e11e,
email: '[email protected]',
phno: '1234567890',
gender: 'female',
dob: Wed May 20 2015 05:30:00 GMT+0530 (IST),
name: 'Test Account',
__v: 0,
local: { password: '$2a$07$gytktl7BsmhM8mkuh6JVc3Bs/my7Jz9D0KBcDuKh01S' } }
ama console.log("here: " + User.hasOwnProperty('local'));
baskılar here: false
?
Kullanıcı ve kullanıcı nasıl tanımlanır? Onların aynı olduklarını mı düşünüyorsun? –
Hayır, aynı değil Tek bir var var değişken = ('../ modeller/kullanıcı'); 'hangi mongoose model olduğunu Diğer bir kod, yukarıdaki kodu –
yukarıdaki geri çağırma argüman olduğunu, bu bir biraz kafa karıştırıcı. Genellikle sadece kurucular için büyük harfle başlayan şeyleri kullanmalısınız. –