奇怪的错误与mongoose

app.get('/showme', function (req, res){ console.log(req.session.user); UserModel.findOne({ user: req.session.user }, function (err, user){ if (err) throw err; console.log(user); res.send('Look'); }); }); 

当这个被执行时,我正确接收到terminal中的用户,但之后,突然间应用程序崩溃了,这是错误TypeError: Cannot read property '_id' of nullreq.session.user被定义,并在应用程序中。 这不是第一次调用UserModel.findOne({ user: req.session.user } ,但是是唯一返回这个错误的!为什么会发生这种情况?

编辑:

这是用户的模式

 var userschema = new mongoose.Schema({ user: String, pass: String, mail: String, avatar: String, }); 

编辑:

我不知道为什么,但是UserModel.find()没有出现任何错误。 它只发生在UserModel.findOne()

编辑:

 app.get('/showme', function (req, res){ UserModel.find({ user: req.session.user }, function (err, user){ for (var i = 0; i <= user[0].following.length; i++) { UserModel.find({ _id: user[0].following[i] }, function (err, users){ var userss = []; users[i] = users[i]; console.log(users); }); } }); res.send('Hello'); }); 

而在这段代码中, UserModel第一次不返回任何错误,但是第二次呢! 这是我在terminal收到的:

 [ { __v: 2, _id: 50e1d852d7b6f9e1be000003, avatar: './users/rodridev/full_Mgs-solid-snake.jpg', user: 'rodridev', notification: [], followers: [ '50e1cfda6e63107eb6000003' ], following: [ '50e1cfda6e63107eb6000003' ], , , undefined ] [ , , , undefined ] [ { __v: 1, _id: 50e214171553600000000003, avatar: './users/kirbo/8816.masterchief.jpg-610x0.jpg', user: 'kirbo', followers: [ '50e1cfda6e63107eb6000003' ], following: [], imagen: [] }, , , undefined ] 

这是出现在这个错误。 与之前一样: TypeError: Cannot read property '_id' of null

尝试

 UserModel.findOne({ _id: req.session.user._id }, function (err, user) { 

问题是,你要求一个用户谁拥有一个属性的user的价值是当前的用户。 你真正想要的(我假设)是来自当前会话用户的数据库中的用户项目。

另外,甚至更好,是我喜欢做的

 UserModel.findById(req.session.user._id, function (err, user) {