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

gon*_*250 4 node.js modulus sails.js

我使用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' }
Run Code Online (Sandbox Code Playgroud)

我试图弄清楚如何解决问题,但没有任何作用.我在这里尝试这样的想法.

我也正确设置了 NODE_ENV = production

谢谢你的时间.

par*_*ana 7

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

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

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

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

module.exports = {
  hookTimeout: 40000
}
Run Code Online (Sandbox Code Playgroud)