在自定义脚本中,我正在解除Sails,做一些事情,然后调用.lower()
,但应用程序不会停止。没有错误返回......
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 :(得分:1)
所以,实际上应用程序正在降低并且所有服务(HTTP,套接字等)都被关闭,但是进程本身继续运行。 process.exit()
是解决方案。所以,我首先优雅地降低所有服务,然后终止该过程:
Sails.lower({}, (err) => {
if (err) {
log.error('An error occurred while shutting the server down.');
}
process.exit();
});