奇怪的Node.JS错误

时间:2013-01-02 19:03:30

标签: ipad node.js express

我在我的Mac上运行了 Node.JS 服务器,并且,我从其他计算机访问它,服务器没有崩溃,但是,我不知道为什么,应用程序从我的iPad访问时崩溃。如果我从Safari访问,服务器可以正常工作,但是,使用Chrome for iPad,应用程序崩溃了!

这是错误:TypeError: Cannot read property 'following' of null。为什么会这样?

编辑:

app.get('/home', middleware.yeses, function (req, res){

 console.log(req.session.user + "\n\n");

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

      console.log(user);

      res.render('home.ejs', {

         username: req.session.user,
         avatar: user[0].avatar,            
         following: user[0].following.length,
         followers: user[0].followers.length

      }); 

  });

});

编辑:

我将console.log(user);更改为此console.log(user[0].following)。而且没有问题。我不知道为什么,当地人有这个问题。

1 个答案:

答案 0 :(得分:0)

这是因为JavaScript抛出异常。在代码中的某处,有一个分配给null的变量,并且正在该变量上访问属性following。此操作引发了异常。

var obj = null;
obj.following; // exception thrown!

无法帮助你。使用您提供的信息和代码(非常少)。但是请查看您从哪里访问following属性并从那里进行调试。


<强>更新

user[0]似乎是null。为什么?不知道。这取决于您尚未发布的其他代码。声明和填充的是user?它是一个阵列吗?因为对于名为user的变量而言,这会很奇怪。