Sailsjs - Hook orm需要太长时间才能加载 - 模数

时间:2015-04-16 12:58:27

标签: node.js sails.js modulus

我使用sails.js创建了一个nodejs应用程序。它在我的localhost中完美运行。当我尝试在服务器中发布它时,问题出现在生产中(模数)。你可以看看下面的错误。

Error: The hook `pubsub` is taking too long to load.
Make sure it is triggering its `initialize()` callback, or else set `sails.config.pubsub._hookTimeout to a higher value (currently 20000)
    at tooLong [as _onTimeout] (/mnt/data/1/ApiDevConf-master/node_modules/sails/lib/app/private/loadHooks.js:92:21)
    at Timer.listOnTimeout (timers.js:110:15) { [Error: The hook `pubsub` is taking too long to load.
Make sure it is triggering its `initialize()` callback, or else set `sails.config.pubsub._hookTimeout to a higher value (currently 20000)] code: 'E_HOOK_TIMEOUT' }

我试图找出如何解决问题,但没有任何作用。我正在尝试像here这样的想法。

我也正确设置了NODE_ENV = production

感谢您的时间。

1 个答案:

答案 0 :(得分:7)

听起来这可能是两个问题之一。

1。)您需要将config/model.js中的迁移设置设置为alter以外的内容。您应该在生产模式下启用migrate: 'safe'。如果NODE_ENV变量设置为production,则应自动执行此操作。

它超时的原因是每次启动服务器时Sails都会尝试将现有数据迁移到当前架构。显然不希望这个在生产中。

2。)你需要加载很多文件,而Modulus从它的虚拟磁盘读取它们的速度很慢。这是一个更大的问题,因为每次需要重新启动服务器时,服务器都需要很长时间才能启动。您可以提高全局超时限制,这应该会给您更多时间。为此,请将以下内容添加到config/env/production.js文件中:

module.exports = {
  hookTimeout: 40000
}