2016-05-22 13 views
0

Angesichts der Situation gibt es eine Aktion innerhalb eines NodeJs-Servers (in meinem Fall SailsJs), wo ich x verschiedene Entitäten in einem Aufruf erstellen muss. Der Client kann die Aktion nicht x-mal aufrufen. Was ist der beste/empfohlene Weg zum Erstellen dieser Entitäten in Bezug auf Rückrufe. Wenn ich Rückrufe verstand Recht possibile es nicht nur so etwas wie dieses Jahr:Mehrere asynchrone Funktionsaufrufe

for(var i = 0; i < x; i++){ 
    User.create(...).exec(...); 
} 

Was wäre der richtige Weg, dies zu implementieren?

Bruno

Antwort

2

Einfach tut es mit async Paket

var async = require('async'); 
async.times(x, function(n, next){ 
    User.create(...).exec(function(err, user) { 
     next(err, user) 
    }) 
}, function(err, users) { 
    // processed x times 
}); 
1

Sie können eine Reihe von über die Benutzer User.create erstellt werden. Sie bereiten zuerst das Array von Benutzern vor.

Da viele Benutzer mit einigen Viele-zu-Viele-Beziehungen erstellt werden müssen, sind native Aufrufe viel schneller, z. Mongo Masseneinsätze.

Sails Reference regarding create

+0

Ganz einverstanden! Ich denke, dass sails docs anerkennt, dass waterline perfekt für schnelle und einfache Operationen ist, aber Sie sollten definitiv .query verwenden, wenn Sie es brauchen. Viel besser, native DB zu verwenden, wo es Operationen auf eine effizientere Weise durchführen kann. Bulk-Insert ist ein Paradebeispiel. – munkee