Javascript 猫鼬没有回来,但猫鼬壳已经回来了
我在我的节点应用程序上使用mongoose,我想通过其电子邮件获得卖家:Javascript 猫鼬没有回来,但猫鼬壳已经回来了,javascript,node.js,mongodb,express,mongoose,Javascript,Node.js,Mongodb,Express,Mongoose,我在我的节点应用程序上使用mongoose,我想通过其电子邮件获得卖家: getSellerByEmail : function(email,next){ var Seller = mongoose.model('Seller'); console.log(inspect(email)); Seller.findOne({'email' : new RegExp(email, 'i')}, function(seller){
getSellerByEmail : function(email,next){
var Seller = mongoose.model('Seller');
console.log(inspect(email));
Seller.findOne({'email' : new RegExp(email, 'i')}, function(seller){
next(seller);
});
}
当我尝试登录时,mongoose不会返回新用户。但是,当我尝试使用相同的电子邮件创建另一个用户时,服务器会正确执行此函数并返回新用户
还尝试了{'email':email}
,它返回null
,但当我在mongo shell上执行此查询时,它返回正确
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:
使用Mongoose debug,打印内容如下:
Mongoose: sellers.findOne({ email: 'email@email.email' }) { fields: undefined }
Mongoose: sellers.findOne({}) { fields: undefined }
正如您所看到的,也尝试了没有参数,没有成功…我也有同样的问题,也许您可以尝试以下方法:
Seller.find({email: seller.email}, function(err, seller){
console.log(seller);
});
这解决了我的问题,希望它也能解决你的问题 我也有同样的问题,也许你可以试试这个:
Seller.find({email: seller.email}, function(err, seller){
console.log(seller);
});
这解决了我的问题,希望它也能解决你的问题 我也有同样的问题,也许你可以试试这个:
Seller.find({email: seller.email}, function(err, seller){
console.log(seller);
});
这解决了我的问题,希望它也能解决你的问题 我也有同样的问题,也许你可以试试这个:
Seller.find({email: seller.email}, function(err, seller){
console.log(seller);
});
这解决了我的问题,希望它也能解决你的问题 传入
findOne
的回调函数采用两个参数(error和doc),因此您将seller
视为错误参数,而不是doc参数
因此,您的函数应该如下所示:
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);
});
}
传入
findOne
的回调函数采用两个参数(error和doc),因此您将seller
视为错误参数,而不是doc参数
因此,您的函数应该如下所示:
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);
});
}
传入
findOne
的回调函数采用两个参数(error和doc),因此您将seller
视为错误参数,而不是doc参数
因此,您的函数应该如下所示:
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);
});
}
传入
findOne
的回调函数采用两个参数(error和doc),因此您将seller
视为错误参数,而不是doc参数
因此,您的函数应该如下所示:
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);
});
}
已经试过了,没有成功。我注意到另一件事,当卖家想要注册时,这个函数也会被调用,所以我调用它来检查电子邮件是否已经在数据库中,并且它可以工作!它返回正确!真的,我不知道为什么登录时没有。两个查询完全相同。。我在
mongoose.set('debug',true)上检查了它们代码>@KayanAlmeida你具体尝试了什么?关键的一点是find
和findOne
回调都使用两个参数,而不是一个。@johnyhk我用mongoose调试输出编辑了我的答案,但正如我前面所说的,这个findOne
在之前被调用,以检查电子邮件的唯一性,并且工作正常。这是同样的功能,同样的输入。可能是连接问题?已经试过了,没有成功。我注意到另一件事,当卖家想要注册时,这个函数也会被调用,所以我调用它来检查电子邮件是否已经在数据库中,并且它可以工作!它返回正确!真的,我不知道为什么登录时没有。两个查询完全相同。。我在mongoose.set('debug',true)上检查了它们代码>@KayanAlmeida你具体尝试了什么?关键的一点是find
和findOne
回调都使用两个参数,而不是一个。@johnyhk我用mongoose调试输出编辑了我的答案,但正如我前面所说的,这个findOne
在之前被调用,以检查电子邮件的唯一性,并且工作正常。这是同样的功能,同样的输入。可能是连接问题?已经试过了,没有成功。我注意到另一件事,当卖家想要注册时,这个函数也会被调用,所以我调用它来检查电子邮件是否已经在数据库中,并且它可以工作!它返回正确!真的,我不知道为什么登录时没有。两个查询完全相同。。我在mongoose.set('debug',true)上检查了它们代码>@KayanAlmeida你具体尝试了什么?关键的一点是find
和findOne
回调都使用两个参数,而不是一个。@johnyhk我用mongoose调试输出编辑了我的答案,但正如我前面所说的,这个findOne
在之前被调用,以检查电子邮件的唯一性,并且工作正常。这是同样的功能,同样的输入。可能是连接问题?已经试过了,没有成功。我注意到另一件事,当卖家想要注册时,这个函数也会被调用,所以我调用它来检查电子邮件是否已经在数据库中,并且它可以工作!它返回正确!真的,我不知道为什么登录时没有。两个查询完全相同。。我在mongoose.set('debug',true)上检查了它们代码>@KayanAlmeida你具体尝试了什么?关键的一点是find
和findOne
回调都使用两个参数,而不是一个。@johnyhk我用mongoose调试输出编辑了我的答案,但正如我前面所说的,这个findOne
在之前被调用,以检查电子邮件的唯一性,并且工作正常。这是同样的功能,同样的输入。可能是连接问题?它正在工作,非常感谢!但是你知道为什么它以前会起作用吗?我不能说,但这绝对是正确的方法。:)它起作用了,非常感谢!但是你知道为什么它以前会起作用吗?我不能说,但这绝对是正确的方法。:)它起作用了,非常感谢!但是你知道为什么它以前会起作用吗?我不能说,但这绝对是正确的方法。:)它起作用了,非常感谢!但是你知道为什么它以前会起作用吗?我不能说,但这绝对是正确的方法。:)