Mongoose puede realizar la autenticación de 2 maneras:
1, Cadena de conexión:
mongoose.connect('mongodb://username:[email protected]:port(usually 27017)/db')
Donde el nombre de usuario y la contraseña son el nombre de usuario y la contraseña respectivos para esa base de datos específica, el host sería el host donde está alojada su base de datos (entonces localhost o algún dominio/IP), el puerto es el puerto en el que Mongo escucha, y la base de datos es el nombre del base de datos a la que desea conectarse
2, Uso de opciones. De los documentos:
var options = {
useMongoClinet: true,
auth: {authdb: 'admin'},
user: 'myUsername',
pass: 'myPassword',
}
mongoose.connect(uri, options);
También enfrenté el error 'nombre de usuario indefinido' en el primer enfoque, pero tuve éxito en el segundo enfoque.
[Referencia] https://github.com/Automattic/mongoose/issues/4891