2015-10-08 34 views
8

Dla stosu MEAN, uczę się o funkcji save() Mongoose, która przyjmuje wywołanie zwrotne. Jego API states:Jak działa funkcja oddzwaniania w Mongoose?

Model#save([options], [fn]) 

Saves this document. 

Parameters: 

[options] <Object> options set `options.safe` to override [schema's safe option](http://mongoosejs.com//docs/guide.html#safe) 
[fn] <Function> optional callback 

Skąd mam wiedzieć, jakie argumenty są w opcjonalnym zwrotnego? API jedynie podaje przykład:

product.sold = Date.now(); 
product.save(function (err, product, numAffected) { 
    if (err) .. 
}) 
The callback will receive three parameters 

err if an error occurred 
product which is the saved product 
numAffected will be 1 when the document was successfully persisted to MongoDB, otherwise 0. 

Co myślę API powinien powiedzieć o opcjonalnym zwrotnego jest następujący:

[fn] <Function> optional callback with this structure: 

    function(err, theDocumentToBeSaved, [isSaveSuccessful]) 

i może być używany jak poniżej. Należy zauważyć, że drugi argument, dokument, musi być tym samym dokumentem, który wywołuje zapis. (Daj mi znać, jeśli to nie jest przypadek.)

documentFoo.save(function(err, documentFoo, [isSaveSuccessful]){ 
    if(err){ return next(err); } 

    if (isSaveSuccessful === 1){ 

     // documentFoo has been saved correctly 
     // do stuff with the saved documentFoo 
    } 
} 

Jeśli moja interpretacja jest prawidłowa, jest to, że jak zapisać parametry zwrotne powinny być zawsze strukturę?

Odpowiedz

16

zwrotna na save funkcyjnego zaakceptuje trzy argumenty:

  • Błąd
  • Dokument, który został zapisany
  • Liczba wierszy dotknięte

argumenty są wymienione here

Zauważ, że drugi argument, dokument musi być taki sam dokument, który jest wywołanie zapisać

można wymienić argumenty jednak chcesz, nie jesteś rzucając go do obiektu lub coś podobnego . To po prostu nazwa, której chcesz użyć, aby odnieść ją do ciała swojej funkcji.