奇怪的“超时”,当试图从Sails.js应用程序执行MongoDB查询

当我在本地主机环境中启动我的Sails应用程序并将其加载到浏览器中时,视图将呈现正常,对另一个(非mongo)资源的asynchronous请求正常工作,但是任何asynchronous请求返回到从Mongo中获取数据的Sails只在应用程序启动的前几个时刻。

只要我在最初的几个时刻收到一个请求,我就可以尽可能多地提出请求。 除此之外,如果我等了整整两三秒钟,通话就会一直停顿。

以下是使用native的查询示例:

Item.native(function (error, collection) { collection.find().sort({'count': 1}).limit(parseInt(count)).toArray(function(error, data) { console.log(error, data); return res.send(data); }); }); 

另一个例子使用水线:

 Item.find().sort('count ASC').limit(count).exec(function (error, data) { console.log(error, data); return res.send(data); }); 

当它停滞时,callback从不被调用,所以没有错误被logging到控制台。

我尝试了一下代码,看起来逻辑stream只是从内部的_dispatch()函数_dispatch()到一些bind函数,并且来回运行。

我可以validation从Mongo控制台查询工作正常,我种植我的数据库使用水线在应用程序启动,这也工作正常。 我也可以访问收集罚款(使用native执行第一个callback)。 我觉得我开始用尽想法,所以任何帮助都会很棒。 谢谢参观。

这是我正在运行的参考:

  • 帆:0.11.0
  • mongo:2.6.10
  • sails-mongo:0.11.0

gconsidine,sails-mongo v0.11.0和v0.11.1有一个不好的连接configuration。 检查我的答案在以前的线程: https : //stackoverflow.com/a/29973775/4249576 。 尝试更新sails-mongo到v0.11.2。