У меня есть облачная функция, которая запрашивает MongoDB. Я использовал эту ссылку для настройки логики кэширования.
let client = null;
function getMongoConnection() {
if (client && client.isConnected()) {
console.log("Re-using Mongo Connection");
return Promise.resolve(client);
} else {
console.log("Creating New Mongo Connection");
return MongoClient.connect('MONGO_URL')
.then(conn => {
client = conn;
return conn;
});
}
}
Первоначально он работает нормально, но затем, когда я повторно внедряю функцию облака, я получаю сообщение об ошибке, подобное этому
MongoError: not authorized on <DB> to execute command
Проблема исчезнет, когда я перезапущу MongoDB. Кроме того, если новый экземпляр облачной функции создается параллельно, эта функция не сталкивается с этой ошибкой.
Я что-то пропустил?