node.js - 无法使用查找查询在 Mongoose 中查找数据

标签 node.js mongoose

在我的应用程序中,我希望用户输入用户名和密码,然后首先使用查找查询在数据库中检查用户名,如果找到用户名,则将新页面呈现给用户。 问题是,如果我输入错误的用户名和密码,那么它也会呈现一个新页面,并且该页面也不会完全加载。 请告诉我错误是什么。

在 app.js 中我写了:

app.post('/profile',users.login);

在 users.js 中我写了:

exports.login=function(req,res){
   console.log("login called");
   PersonalInfo.findOne({ name:req.params.userName}, function(err,data){
      if(err)
      {
          console.log("find is not done");
          console.log(data);
      }
      else{
          res.render("/profilearea.ejs");
      }
        })

}

最佳答案

findOne 查询未能找到匹配文档时,不会将其视为错误。相反,“未找到”情况由 findOne 回调的 data 参数指示为 null

您的 findOne 回调函数的代码应如下所示:

  if(err || !data)
  {
      console.log("find is not done");
  }
  else{
      res.render("/profilearea.ejs");
  }

关于node.js - 无法使用查找查询在 Mongoose 中查找数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12828207/

相关文章:

javascript - 在 Node JS 中将 XML 转换为 JSON

javascript - UpdateOne mongodb 而不更改其他对象

javascript - mongodb 保存在嵌套对象(node.js)应用程序中

Node.js (Socket.io) - 如果用户正在切换页面,我不想运行断开连接

javascript - Mongoose:find() - 匹配两个值并仅返回匹配的文档

node.js - 使用 Mongo Migration 展平对象数据

javascript - 从 Nodejs mssql 结果解析 JSON 结果

javascript - Model.remove() 根本不起作用

javascript - 在 Mongoose 中用这个和 $in 获取 "Maximum call stack size exceeded"

javascript - 获取类型错误 : Unknown encoding: 1 while running the server script with Mongoose