model.find方法未从数据库返回必填字段

时间:2019-07-26 21:30:23

标签: javascript node.js mongodb mongoose find

console.log(correct.password)返回undefined,而if条件返回false

app.post('/login' , async (req , res)=>
{

   const correct = data.findOne({name : req.body.name}).select({name : 0});
   if(!correct)  
   {
    return res.status(400).send("Invalid Username or 
    Password")
   };

    console.log(correct.password);

   const passcomp = compare(req , correct);
  if(!passcomp) { console.log("innnncorrect");return 

  res.status(400).send("Invalid Username or Password");}

  res.send("Successful");


});

我应该获得所请求用户的密码,但是我收到的查询既不包含名称也不包含密码。

我该如何解决问题?

1 个答案:

答案 0 :(得分:0)

您可能只需要在查询之前添加await关键字,就像在 async 函数中一样:

const correct = await data
  .findOne({ name : req.body.name })
  .select({ name : 0 });