2012-03-28 79 views
0

我已經編寫了以下方法,通過他們的電子郵件在數據庫中搜索用戶。如何在node.js中使用貓鼬查詢數據庫

/** 
* Find a user by providing their email address 
*/ 
DataProvider.prototype.findUserByEmail = function(callback, email) { 
console.log("in findUserByEmail"); 
User.findOne({ 
    emailAddress : email 
}, function(error, user) { 
    if(error) { 
     console.log(error); 
     callback(error); 
    } 
    else { 
     console.log(user); 
     callback(user); 
    } 
}); 
}; 

我想用下面的測試吧:

function testFindUserByEmail() { 
var expectedEmail = "[email protected]"; 
data.findUserByEmail(function(user) { 
      if (user.emailAddress === expectedEmail) { 
       console.log("User found"); 
      } else { 
       console.log("User not found"); 
      } 
    console.log(user); 
}, "[email protected]"); 
console.log("test"); 
} 

我得到的outout:在findUserByEmail 測試

這就像User.findOne()不被叫,我不知道爲什麼。 其他信息:

var UserSchema = new Schema({ 
emailAddress : { 
    type : String 
}, 
occupation : { 
    type : String 
}, 
token : { 
    type : String 
}, 
password : { 
    type : String 
}, 
registrationDate : { 
    type : Date 
}, 
activated : { 
    type : Boolean 
} 
}); 

/** 
* Define Model 
*/ 
var User = mongoose.model('User', UserSchema); 
DataProvider = function() { 
}; 

回答

1

沒有你連接數據庫, 嘗試:mongoose.connect('db-uri', function (err) { next(err); });

+1

是的,我有。我雖然解決了這個問題。發現mongoDb連接出現問題。我得到'錯誤:無法連接到服務器127.0.0.1 shell/mongo.js:84'錯誤。感謝您的回答 - 它將我轉變爲檢查我的連接的正確方向 – jokham 2012-03-28 03:56:22