0

所以我有一点问题,也只是进入 Node 所以要温柔!

我有以下(使用护照):

User.findOne({}, '_id username interests', {
    _id: req.user._id
}, function(err, user) {
    if (err) return;
    console.log(req.user._id);
    console.log(user._id);
    res.json(user);
});

但是,这两个 console.log 会产生不同的 ID!我不知道为什么??这怎么可能?

就像我说的,我是 Node 新手,所以我有点挣扎……

4

1 回答 1

0

findOne需要将查询作为第一个参数传递。在您的示例中,您向它传递了一个空参数,这几乎意味着“给我一些来自数据库的随机用户”。

尝试这个:

User.findOne({ _id: req.user._id }, '_id username interests', function(err, user) {
  // in case of errors, send back a response too!
  if (err)
    return res.send(500);
  ...
});

FWIW:因为看起来你正在使用 Mongoose,所以也有findById这样的情况。

于 2013-06-25T05:46:51.007 回答