2017-06-16 3 views
0

Ich entwickle eine Web-App, der Benutzer könnte einen Thread, 2 Schritte dafür: eine ist das Speichern des Threads in Thread-Sammlung, eine ist das Speichern der ThreadID in Benutzersammlung.Wie geht man nach dem Senden einer Antwort in Express.js vor?

Allerdings möchte ich nach dem Speichern in der Thread-Sammlung die Antwort sofort senden, ohne auf den Abschluss der anderen Speicheraktion zu warten.

Gibt es irgendeine empfohlene Lösung dafür, indem Sie die express.js oder den Knoten selbst verwenden, ohne die anderen task queue sort libs zu verwenden?

Konnte ich nur ein Ereignis auslösen und dann die Antwort senden? Wird der Ereignis-Listener weiterhin ausgeführt, obwohl die Anforderung bereits erfüllt ist?

Dank

Antwort

3

Sie können die Antwort nach der Erstellung von Thread und vor der Benutzerdaten-Update für threadID senden.

Im Folgenden finden Sie sudo-Code für das gleiche:

var express = require('express'); 
var app = express(); 
app.post('/', function(req, res, next) { 
    threadCreationRequest(function(err, data) { 
     res.send(data); 
     userUpdateRequest(); 
    }); 
} 
0

die Thread-ID erstellen, bevor es zu speichern Sammlung fädeln. Sie könnten uuid verwenden oder wenn Sie MongoDB verwenden, können Sie eine ObjectId mit mongoose erstellen (oder eine andere Möglichkeit zum Erstellen einer eindeutigen ID finden).

const uuidV1 = require('uuid/v1'); 
... 
function saveThread(req,res){ 
     const threadId=uuidV1(); // -> 6c84fb90-12c4-11e1-840d-7b25c5ee775a 
     let thread=req.body; 
     thread.id=threadId; 
     saveThread(); 
     //return response (res.status(200).json(newThreadObject)) 
     saveThreadId(); 
} 
Verwandte Themen