这是我的代码
//to check whether email exist or not
router.post('/forgot', function(req,res) {
User.find({email: req.body.email}, function(err,found) {
console.log('finding email');
if(found.length) {
//console.log(found);
resets(found);
return res.json({success: true, msg: 'User found'});
//return res.json(found);
}
else if(err) {
return res.json({success: false, msg: 'User not found'});
}
else if(!found) {
return res.json({success: false, msg: 'User not found'});
}
});
});
function resets(foundData) {
console.log(foundData.email);
var mailObj = foundData.email;
console.log(mailObj);
}
在我的控制台中,我得到的输出为
未定义电子邮件 未定义
但是当我尝试仅显示foundData
对象时,我在控制台中得到的输出为
finding email
[ { _id: 5b3ca69ba87aa42414993682,
name: 'xxxxx',
email: 'xxx',
username: 'xxxxx',
password: '$2a$10$ZLeRJvizxk62EOS/5mZT6evz7.mFbzf38K6pAzr69O/5I2EZ6WJWO',
phone: '',
location: '',
title: '',
company: '',
education: '',
__v: 0 } ]
这是上面输出的代码。
function resets(foundData) {
console.log(foundData);
}
我想要email
对象中的变量foundData
。我该如何解决?
答案 0 :(得分:0)
那是因为您试图访问一个不存在的对象属性。
在记录的对象中,您有一个数组,在内部的对象中。这是因为MongoDB
find方法会尝试查找符合条件的每个对象,如果只需要一个对象,则应使用findOne
之类的东西。
尝试一下:
var mailObj = foundData[0].email;