Non è ben documentato, ma cursor.each fornisce un null valore al secondo parametro della sua richiamata per indicare che il cursore non ha più documenti disponibili. È menzionato solo nell'esempio della documentazione .
Quindi nel tuo caso dovresti controllare user !== null nel tuo users.each richiamata.
Tuttavia, sarebbe più efficiente chiedere a mongo di cercarti modificando il tuo find chiama a:
collection.findOne({email: email}, {}, function(err, user) {
if (user) {
// email was found case
...
}
...
}