2016-07-22 84 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(); 
     });