首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >猫鼬不回来,但芒果壳是

猫鼬不回来,但芒果壳是
EN

Stack Overflow用户
提问于 2015-01-16 17:39:14
回答 2查看 231关注 0票数 0

我在我的节点应用程序上使用猫鼬,我想通过它的电子邮件获得卖家:

代码语言:javascript
复制
getSellerByEmail : function(email,next){
        var Seller = mongoose.model('Seller');
        console.log(inspect(email));
        Seller.findOne({'email' : new RegExp(email, 'i')}, function(seller){

            next(seller);
        });
    }

当我尝试登录时,猫鼬不会返回新用户。但是,当我尝试使用相同的电子邮件创建另一个用户时,服务器正确地执行此功能,并返回新用户。

也尝试了使用{'email' : email},它返回null,但是当我对mongo执行这个查询时,它会正确返回。

代码语言:javascript
复制
db.sellers.findOne({email : 'email@email.email'});
{
   "_id" : ObjectId("54b94759b042bdbf19cb7b97"),
   "name" : "Nome da Empresa",
   "cnpj" : "123123123",
   "email" : "email@email.email",
   "password" : "$2a$08$6UvW8Bux3CwUMok8ac12Sehbd.xCHnVUI51ZwhtGKBjkSa6/MrqUu",
   "__v" : 0
}

我刚接触过mongodb +猫鼬,所以我知道这是个愚蠢的问题,但我只是不知道出了什么问题.我还创建了一个findSellerById()函数,它运行得非常完美。

编辑1:

使用“猫鼬调试”,下面是打印的内容:

代码语言:javascript
复制
Mongoose: sellers.findOne({ email: 'email@email.email' }) { fields: undefined }
Mongoose: sellers.findOne({}) { fields: undefined }

如你所见,也尝试过没有参数,没有成功.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-16 18:21:40

传入findOne的回调函数接受两个参数(error和doc),因此您将seller视为错误参数而不是doc参数。

因此,您的函数应该如下所示:

代码语言:javascript
复制
getSellerByEmail : function(email,next){
    var Seller = mongoose.model('Seller');
    console.log(inspect(email));
    Seller.findOne({'email' : new RegExp(email, 'i')}, function(err, seller){
        next(seller);
    });
}
票数 1
EN

Stack Overflow用户

发布于 2015-01-16 17:50:53

我也有同样的问题,也许你可以试试这个:

代码语言:javascript
复制
Seller.find({email: seller.email}, function(err, seller){
    console.log(seller);
});

这解决了我的问题,希望它也能解决你的问题!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27989654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档