Я пытаюсь разработать настольное приложение, используя электрон, и я хочу выполнить запрос на обновление (который обновляет поле logout_time), прежде чем процесс завершится, т.е. Ctrl + C. В моей текущей реализации приложение ловит завершение процесса, но не запускает обновление, как следует.
У меня есть код очистки, который выполняется, когда пользователь нажимает Ctrl + C
маршруты / index.js
let Hardware = require('../models/Hardware');
var cleanup = require('../cleanup').Cleanup(myCleanup);
function myCleanup() {
console.log('App specific cleanup code...');
var now = new Date();
// console.log(now)
Hardware.findOneAndUpdate({uuid: "4C4C4544-0056-5810-8054-C4C04F595A31"}, {logout_time : now },
function(err, hardware){
console.log('trigger on close')
pusher.trigger('my-hardware', 'my-cast', {
hardware:hardware
});
})
}
cleanup.js
exports.Cleanup = function Cleanup(callback) {
// attach user callback to the process event emitter
// if no callback, it will still exit gracefully on Ctrl-C
callback = callback || noOp;
process.on('cleanup',callback);
// do app specific cleaning before exiting
process.on('exit', function () {
process.emit('cleanup');
});
// catch ctrl+c event and exit normally
process.on('SIGINT', function () {
console.log('Ctrl-C...');
process.exit(2);
});
//catch uncaught exceptions, trace, then exit normally
process.on('uncaughtException', function(e) {
console.log('Uncaught Exception...');
console.log(e.stack);
process.exit(99);
});
};
Любые альтернативы / решения приветствуются, спасибо!
Ожидаемый результат:
Когда я завершаю работу сервера с помощью Ctrl + C, он должен запустить FindOneAndUpdate для этой записи и обновить поле logout_time текущим временем.