如何在node.js中使用mongoose查询数据库

时间:2012-03-28 02:26:25

标签: node.js mongoose

我编写了以下方法,通过电子邮件在数据库中搜索用户。

/**
 * 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 = "user@user.com";
data.findUserByEmail(function(user) {
            if (user.emailAddress === expectedEmail) {
                console.log("User found");
            } else {
                console.log("User not found");
            }
    console.log(user);
}, "user@user.com");
console.log("test");
}

我得到了一个结论: 在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 个答案:

答案 0 :(得分:1)

你是否连接了数据库, 尝试:mongoose.connect('db-uri', function (err) { next(err); });