Mongoose può eseguire l'autenticazione in 2 modi:
1, Stringa di connessione:
mongoose.connect('mongodb://username:[email protected]:port(usually 27017)/db')
Dove nome utente e password sono il rispettivo nome utente e password per quello specifico db, host sarebbe l'host in cui è ospitato il tuo db (quindi localhost o qualche dominio/IP), port è la porta su cui mongo è in ascolto e db è il nome del db a cui vuoi connetterti
2, Utilizzo delle opzioni. Dai documenti:
var options = {
useMongoClinet: true,
auth: {authdb: 'admin'},
user: 'myUsername',
pass: 'myPassword',
}
mongoose.connect(uri, options);
Ho anche riscontrato l'errore "nome utente non definito" nel primo approccio, ma sono riuscito nel secondo approccio.
[Riferimento] https://github.com/Automattic/mongoose/issues/4891