Проблема в том, что вызов addAnimal()
выполняется до установления соединения. Обратный вызов, переданный в client.connect
, имеет вид asyn c - он выполнится «позже». К тому времени, когда вы вызываете addAnimal
, обратный вызов не был выполнен (еще), и поэтому animals
все еще не определено.
Решением было бы поместить addAnimal
в обратный вызов client.connect
следующим образом:
client.connect(() => {
db = client.db('test');
animals = db.collection('animals');
addAnimal();
});