Ik heb het veranderd om findOne te gebruiken in plaats van find en het werkt nu. Ik weet niet zo zeker waarom dit een verschil zou moeten maken. Dit is de findOne-functie die ik heb gebruikt:
User.findOne({'local.rooms': {$elemMatch: {name: req.body.username}}}, function (err, user) {
if (err){
return done(err);
}
if (user) {
console.log("ROOM NAME FOUND");
req.roomNameAlreadyInUse = true;
next();
} else {
req.roomNameAlreadyInUse = false;
console.log("ROOM NAME NOT FOUND");
next();
}
});