奇怪 "timeouts" 尝试从 Sails.js 应用程序执行 MongoDB 查询

Odd "timeouts" when attempting to execute a MongoDB query from a Sails.js app

当我在本地主机环境中启动我的 Sails 应用程序并将其加载到浏览器中时,视图将呈现良好,对另一个 (non-mongo) 资源的异步请求工作正常,但任何异步请求返回从 Mongo 获取数据的 Sails 仅在应用程序启动的前几分钟有效。

只要我在最初的几分钟内收到一个请求,我就可以敲打任意多个请求。除此之外,如果我等待整整 2 或 3 秒,呼叫将始终停止。

下面是使用本机的查询示例:

    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);
});

当它停止时,永远不会调用回调,因此不会将错误记录到控制台。

我试过单步执行代码,看起来逻辑流只是从一个内部 _dispatch() 函数跳到几个 bind 函数,来回反复等等。

我可以从 Mongo 控制台验证查询工作正常,并且我在应用程序启动时使用 Waterline 为我的数据库播种,这也工作正常。我还可以正常访问 collection(使用 native 执行的第一个回调)。我觉得我开始 运行 没主意了,所以任何帮助都会很棒。感谢您的观看。

下面是我运行宁供参考:

gconsidine、sails-mongo v0.11.0 和 v0.11.1 的连接配置有问题。检查我在上一个线程中的回答:。尝试将 sails-mongo 更新到 v0.11.2.