在node.js中超出最大调用堆栈大小

这里是我的node.js应用程序与mongodb,代码自爆运行良好,简单地通过用户会话id从mongodb数据库加载用户信息,会话存储是从连接mongo的 MongoStore。 最初,这个node.js是在我的电脑本地部署的。

但是,当我点击浏览器刷新页面非常快,点击一下(20,30点击),它会抛出一个exception,说未捕获的exception:RangeError:超过最大调用堆栈大小 ,有时,它另外显示另一个错误,说错误:连接mongo上没有打开连接

app.get('/',homePage); function homePage(req,res){ var locals = {}; userModel.findUserById(req.session.uid,function(err,user){ if(err) { console.log('user uid not found'.red); } else{ console.log('find user uid'.green,user._id); locals.user = { username: user.username, email: user.email }; res.send(200); } }) } 

下面是由userModel调用的findUserById,它位于另一个文件中。

 function findUserById(id,callback){ var id; try { id = mongoose.Types.ObjectId(id); } catch(e) { callback(err, null); } UserModel.findById(id,function(err, doc){ if(err){callback(err, null);} else{ callback(null, doc); } }) } 

我不知道是真的出了什么问题,是连接mongo还是其他什么东西,我发现超过最大调用堆栈大小的错误是因为recursion,但我在这里显示的代码没有recursion。

更新:

 app.get('/',homePage); function homePage(req,res){ var locals = {}; res.send(200); } 

即使在这种情况下,在多次点击快速之后,服务器也会抛出超出最大调用堆栈大小的错误

我想这是因为我的node.js版本和expression不够兼容? 我的快递版本是3.1.0,但我的node.js版本是0.8.20?

现在,当我更新node.js版本到最新的版本10.4,这个问题似乎没有再次发生,所以原因可能是因为旧的node.js版本无法使用最新的快速版本。

我总是更新库版本,但保留node.js不更新。