Выполнение запроса монго перед закрытием соединения с сервером узла - PullRequest
0 голосов
/ 17 января 2019

Я пытаюсь разработать настольное приложение, используя электрон, и я хочу выполнить запрос на обновление (который обновляет поле 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 текущим временем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...