Det är inte väldokumenterat, men cursor.each ger en null värde till den andra parametern i dess callback för att indikera att markören inte har fler tillgängliga dokument. Det nämns bara i exemplet med dokumentationen .
Så i ditt fall bör du leta efter user !== null i din users.each återuppringning.
Det skulle dock vara mer effektivt att låta mongo göra sökningen åt dig genom att ändra din find ring till:
collection.findOne({email: email}, {}, function(err, user) {
if (user) {
// email was found case
...
}
...
}