Itu tidak didokumentasikan dengan baik, tetapi cursor.each memberikan null nilai ke parameter kedua dari panggilan baliknya untuk menunjukkan bahwa kursor tidak memiliki dokumen lagi yang tersedia. Itu hanya disebutkan dalam contoh dokumentasi .
Jadi dalam kasus Anda, Anda harus memeriksa user !== null di users.each . Anda panggilan balik.
Namun, akan lebih efisien jika mongo melakukan pencarian Anda dengan mengubah find hubungi:
collection.findOne({email: email}, {}, function(err, user) {
if (user) {
// email was found case
...
}
...
}