【发布时间】:2021-06-09 20:53:27
【问题描述】:
您好,我正在查询我的数据库中是否有用户。我在 Node.JS 中使用 Mongoose。
这是我的查询:
var user;
users.findOne({'fbUID': '1234'}, setFoundUser)
var setFoundUser = function(err, userFound){
if (err) return handleError(err);
user = userFound
}
好吧,我正在尝试检查查询结果是否从数据库中返回了一个文档。我是这样检查的:
function getUserFound(){
return user;
}
var user= getUserFound();
if(user !== undefined ){...
//do something
}
但是,即使我的查询返回一个文档,换句话说,用户存在,它也永远不会进入上面的 if。 例如,如果用户存在,“用户”变量将接收从数据库返回的文档,但我不知道如何检查它是否未定义。
如果用户存在,它应该进入 if,但如果它不存在于数据库中,Mongoose 会返回什么?假,空,未定义?什么都没有?
如何检查查询没有返回任何文档?
有人知道吗?
感谢您的理解。
【问题讨论】:
-
您定义了两次
user,我还用更完整的代码更新了我的答案。由于 Node 是事件驱动的,它会使用回调来通知其他对象。 -
好的。太感谢了。我会在这里尝试一切,我会发布结果。不,第一个用户从数据库中接收数据,第二个用户变量在其他文件中并接收函数返回的用户。
标签: node.js if-statement mongoose undefined mongodb-query