Nie jest dobrze udokumentowane, ale cursor.each dostarcza null wartość drugiego parametru jego wywołania zwrotnego, aby wskazać, że kursor nie ma więcej dostępnych dokumentów. Jest to tylko wspomniane w przykładzie dokumentacji .
Więc w twoim przypadku powinieneś sprawdzić, czy user !== null w swoim users.each oddzwonienie.
Jednak bardziej efektywne byłoby, gdyby mongo wykonało wyszukiwanie za Ciebie, zmieniając Twoje find zadzwoń do:
collection.findOne({email: email}, {}, function(err, user) {
if (user) {
// email was found case
...
}
...
}