首页 > 解决方案 > 为什么比较对象值返回 false?

问题描述

我正在创建一个电子邮件检查器,以查看在前端输入的电子邮件是否与后端的电子邮件完全相同。我设法同时获得了前端和后端电子邮件,但每次我检查它们时它都会返回 false,即使它们是相同的值。我正在使用 Object.is 检查值是否相同,我也尝试了典型的 (data.email === user.email ) 方法,但即使值相同,它仍然返回 false。

router.get('/checkemail',(req,res)=>{
  let data = req.query;
  console.log(data)
  User.findOne({
    username: data.username,
  },function(error,user){
  if(error){
    res.status(401).send(error)
  } else if(Object.is(user.email, data.email)) {
    res.status(200).send(true)
  } else {
    res.status(401).send(false)
  }
})
  })

标签: javascripthtmlcssmongodbmongoose

解决方案


您可以尝试在 object.is 的每个参数上使用 trim() 函数吗?

Object.is(user.email.trim(), data.email.trim())

推荐阅读