Трябва да направите вашата връзка веднъж и да я използвате във всички манипулатори.
В момента това, което правите, е да се свързвате отново с базата данни при всяка отделна заявка, дори при тези заявки, които изобщо не използват базата данни. Освен това вие извиквате next() дори преди да изчакате връзката да се установи.
Връзките с бази данни са предназначени да бъдат постоянни - не еднократни неща, така че е вероятно да получите много лоша производителност с вашия подход и дори не съм сигурен защо бихте искали да направите това. Имахте ли проблеми с една връзка? Не мисля, че чукването на вашата база данни по този начин би помогнало. Ако не друго, това може само да влоши нещата.
Когато се свържете с Mongo с роднияMongoDB драйвер Node.js има някои опции, които можете да използвате, като:
poolSize
- Задайте максималния размер на пула за всеки отделен сървър или прокси връзка (по подразбиране е5
)autoReconnect
- Повторно свързване при грешка (по подразбиране еtrue
)
Някои други интересни опции са:reconnectTries
, reconnectInterval
, keepAlive
, connectTimeoutMS
, socketTimeoutMS
.
Можете да промените стойностите на тези опции, ако не сте доволни от настройките по подразбиране.
За повече информация вижте:
- Неуспешни връзки и повторни опити
- MongoClient или как да се свържете в нов и по-добър начин
- Уроци / Свързване с MongoDB
- Справка / Опции за връзка / Настройки за връзка
- Въпрос относно автоматичното повторно свързване на node.js mongo драйвер (пощенски списък)