2017-02-02 5 views
3

Ich bin ein wenig neu zu Knoten und Mungo, ich versuche, alle Dokumente in einer Sammlung zu löschen. Ich verwende diesen Code:TypeError: callback.apply ist keine Funktion

app.delete('/accounts', function deleteAccount(req, res, next){ 

    Account.remove({}, {multi:true}); 
    res.json({ 
     message: 'Accounts Deleted!' 
    }); 

}); 

Das Problem ist, wenn ich eine API-Anforderung an diese Methode machen, es beginnt die Verarbeitung und hört nicht auf, wenn ich es nicht zunichte machen. Der Code entfernt alle Dokumente in meiner Sammlung, führt jedoch einen Fehler aus. Dies ist der Fehler, der es wirft:

events.js:141

throw er; // Unhandled 'error' event ^

TypeError: callback.apply is not a function

ich meinen Code wollen, ohne diesen Fehler arbeiten, und ich möchte nicht mein Wunsch zu hängen, während es eine requst verarbeitet. Irgendwelche Empfehlungen sind willkommen.

Antwort

4

Sie benötigen einen Rückruf für remove Methode zu übergeben:

Account.remove({}, function(err, result){ 
    res.json({ 
     message: 'Accounts Deleted!' 
    }); 
}); 

Und wenn Sie für das Ausfüllen warten wollen nicht:

var cmd = Account.remove({}); 
cmd.exec(); 
res.json({ 
      message: 'Accounts Deleted!' 
     }); 

Eigentlich remove erhält zwei Argumente, die die zweite in wahlweise. Wenn der zweite vorhanden ist, sollte es ein Rückruf sein.

Beim Entfernen von Dokumenten haben Sie keine multi Option.

Die Ausnahme Sie ist erhalten, dass genau für Mungo {multi: true} als Rückruf

+1

Ehrfürchtiges Mann betrachten! funktioniert perfekt! –