所以我有一点问题,也只是进入Node所以要温柔!
我有以下(使用Passport):
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的新手,所以我有点挣扎......
答案 0 :(得分: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
。