2015-04-16 75 views
4

我已经使用sails.js做了一个nodejs应用程序。它在我的本地主机中完美运行。当我尝试将其发布到服务器(模数)中时,问题就出现在生产中。你可以看看下面的错误。Sailsjs - 挂钩orm花费太长的时间加载 - Modulus

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

感谢您的时间。

回答

7

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

1.)您需要将config/model.js中的迁移设置设置为alter以外的值。您应该在生产模式下打开migrate: 'safe'。如果NODE_ENV变量设置为production,这应该会自动发生。

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

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

module.exports = { 
    hookTimeout: 40000 
} 
+0

嘿@particlebanana我已经添加了''migrate:'safe'''而没有任何内容。另外我已经尝试了第二个选项,但不工作..:s会帮助,如果我分享给你我的代码在github?¿(http://devconf-45442.onmodulus.net/) – gon250

+0

是啊,如果你有一个github链接,这将是伟大的 – particlebanana

+0

可能是一个愚蠢的事情..但我找不到它是什么。 https://github.com/gon250/ApiDevConf @particlebanana谢谢! – gon250

相关问题