奇怪 "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
执行的第一个回调)。我觉得我开始 运行 没主意了,所以任何帮助都会很棒。感谢您的观看。
下面是我运行宁供参考:
- 风帆:0.11.0
- mongo: 2.6.10
- sails-mongo: 0.11.0
gconsidine、sails-mongo v0.11.0 和 v0.11.1 的连接配置有问题。检查我在上一个线程中的回答:。尝试将 sails-mongo 更新到 v0.11.2.
当我在本地主机环境中启动我的 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
执行的第一个回调)。我觉得我开始 运行 没主意了,所以任何帮助都会很棒。感谢您的观看。
下面是我运行宁供参考:
- 风帆:0.11.0
- mongo: 2.6.10
- sails-mongo: 0.11.0
gconsidine、sails-mongo v0.11.0 和 v0.11.1 的连接配置有问题。检查我在上一个线程中的回答: