2016-07-22 87 views
0

在自定義腳本中,我正在解除Sails,做一些事情,然後調用.lower(),但該應用並未停止。沒有錯誤返回...Sails應用不會降低

const Sails = require('sails') 
    , rc = require('rc'); 

function run() { 
    Sails.lift(rc('sails', {process: 'manual'}), (err, server)=> { 
    if (err) { 
     console.error(err); 
    } 

    // ... do some stuff 

     Sails.lower({}, (err)=> { 
     console.log('ERROR', err); 
     return true; 
     }); 
    }); 
    }); 
} 

該應用程序只是繼續運行。 .lower()沒有返回錯誤,默認情況下它沒有回調結果。我調試lower.js文件本身,並發現該代碼甚至沒有達到...

我認爲問題是lower()返回一個回調,但我的腳本不接受一個,所以我該如何管理這個案例?

+0

希望你只打電話給錯誤的權利。嘗試添加一個console.log檢查降低後。 或 添加Sails回調來檢查下降是否完成。 – Thennarasan

+0

@Thennarasan,我更新了我的帖子。 – Milkncookiez

回答

1

因此,實際上應用程序正在降低,所有服務(HTTP,套接字等)都被關閉,但進程本身繼續運行。 process.exit()是解決方案。所以,我首先優雅地降低所有的服務,然後終止這個過程:

 Sails.lower({}, (err) => { 
     if (err) { 
      log.error('An error occurred while shutting the server down.'); 
     } 
     process.exit(); 
     });