【发布时间】:2015-07-29 22:20:36
【问题描述】:
为什么会出错
`Error: The hook 'orm' is taking too long to load.`
起帆时经常出现这种情况?即使orm timeout 已经设置为 100000,它仍然有时会出现(并非总是)。通常在 PC 重新启动并首次运行风帆后发生。
它也经常发生在云服务器和我的电脑旁边的笔记本电脑上。所以它发生在我测试的环境中:
- Windows 8.1(PC 和笔记本电脑)和 Linux (Ubuntu 14.04)
- node.js 版本 0.10.38
- 航行版本 0.11
- MongoDB 版本 3
完整的错误报告是这样的
error: Error: The hook `orm` is taking too long to load.
Make sure it is triggering its `initialize()` callback, or else set `sails.config.orm._hookTimeout to a higher value (currently 20000)
at [object Object].tooLong [as _onTimeout] (D:\Workspace\Hellowin\cannes\node_modules\sails\lib\app\private\loadHooks.js:92:21)
at Timer.listOnTimeout [as ontimeout] (timers.js:112:15) { [Error: The hook `orm` is taking too long to load.
Make sure it is triggering its `initialize()` callback, or else set `sails.config.orm._hookTimeout to a higher value (currently 20000)] code: 'E_HOOK_TIMEOUT' }
D:\Workspace\Hellowin\cannes\node_modules\sails\node_modules\async\lib\async.js:30
if (called) throw new Error("Callback was already called.");
^
Error: Callback was already called.
at D:\Workspace\Hellowin\cannes\node_modules\sails\node_modules\async\lib\async.js:30:31
at process._tickDomainCallback (node.js:492:13)
这是一个 MongoDB 适配器错误吗?
【问题讨论】:
-
mongod正在运行吗?可以通过命令提示符访问数据库吗? -
我最好的猜测是其他一些进程正在占用您的计算机资源。如果升降机经常发生故障,就不可能继续使用该配置。您应该尝试释放计算机资源。
-
Sails + MongoDB 一点也不高。我在谈论“可能”占用您的资源的“其他”进程。我在具有 4GB RAM 的笔记本电脑上使用 3 个带有 Mongodb 的 Sails 实例,并且仍然可以做很多其他事情。查看其他哪些进程正在消耗您的 RAM/处理器。
-
在这种情况下,您的数据库可能太重了。如果您尝试使用新的数据库,它会正确连接吗?
-
另外,您的
hookTimeout仍显示为 20000。
标签: mongodb sails.js sails-mongo