2015-04-16 101 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

相關問題