奇怪的“超时”,当试图从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。