2016-07-22 9 views
0

In einem benutzerdefinierten Skript hebe ich Sails, mache ein paar Sachen, dann ruft .lower(), aber die App hört nicht auf. Kein Fehler wird zurückgegeben entweder ...Sails App nicht niedriger

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; 
     }); 
    }); 
    }); 
} 

Die App läuft einfach weiter. Es wird kein Fehler von .lower() zurückgegeben und es hat standardmäßig kein Callback-Ergebnis. Ich debuggte in der Datei lower.js selbst und stellt fest, dass dieser Code nicht einmal erreicht wird ...

Ich denke, das Problem ist, dass lower() einen Rückruf zurückgibt, aber mein Skript akzeptiert keine, so wie ich es verwalte dieser Fall?

+0

Hoffe, dass Sie nur auf err Recht fordern. Versuchen Sie, nach dem Absenken eine console.log hinzuzufügen. ODER Fügen Sie Sails Callback hinzu, um zu prüfen, ob das Senken abgeschlossen ist. – Thennarasan

+0

@Thennarasan, habe ich meinen Beitrag aktualisiert. – Milkncookiez

Antwort

1

So wurde die App tatsächlich gesenkt und alle Dienste (HTTP, Socket usw.) wurden heruntergefahren, aber der Prozess selbst lief weiter. process.exit() war die Lösung. Also, ich zuerst anmutig alle Dienste senken und dann den Prozess beenden:

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