MongoDB collection.find()查询挂起

时间:2015-03-23 14:33:27

标签: javascript node.js mongodb express

我正在尝试通过用户名查询用户,如下所示:

userRouter.get('/user/:user_username', function(req, res) {
console.log("GET request to '/user/" + req.params.user_username + "'");

User.find({ usernmame: req.params.user_username }, function(err, user) {
  if (err) res.send(err); return;

  res.json(user);
});

});

查询永远不会完成,Chrome开发工具会在请求中显示“待处理”。它肯定会去那条路线,因为它会打印我在开始时记录的控制台消息。我在mongo cli中执行了相同的查询,它确实有效。我尝试在回调体中记录消息,但它永远不会到达那一点。我现在不知道该怎么做。

1 个答案:

答案 0 :(得分:5)

这是因为if (err) res.send(err); return;被评估为

if (err) {
    res.send(err);
}

return;

要解决此问题,请考虑添加一些大括号。