我使用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
感谢您的时间。
答案 0 :(得分:7)
听起来这可能是两个问题之一。
1。)您需要将config/model.js
中的迁移设置设置为alter
以外的内容。您应该在生产模式下启用migrate: 'safe'
。如果NODE_ENV变量设置为production
,则应自动执行此操作。
它超时的原因是每次启动服务器时Sails都会尝试将现有数据迁移到当前架构。显然不希望这个在生产中。
2。)你需要加载很多文件,而Modulus从它的虚拟磁盘读取它们的速度很慢。这是一个更大的问题,因为每次需要重新启动服务器时,服务器都需要很长时间才能启动。您可以提高全局超时限制,这应该会给您更多时间。为此,请将以下内容添加到config/env/production.js
文件中:
module.exports = {
hookTimeout: 40000
}