Tohle se řeší stále dokola… A je zajámavé, že pokaždé jinak… To by jeden neřekl, že tohle půjde vymyslet jinak…
Máte nějakou aplikaci, řekněme nějaký REST server, čí cokoliv jiného a předpokládáte větší zátěž na vaši Mongo databázi a rádi byste ušetřili nějaký ten čas a to třeba tak, že nebudete při každém požadavku na databázi znovu a zase navazovat spojení s databázovým serverem. I když i tohle si dovedu představit a určitě je to dobré a vhodné řešení řekněme pro jinou úlohu.
V našem případě chcete tedy nějaký singleton, napříč celou aplikací sdílenou konektivitu. Pak takové řešení může vypadat třeba takto:
Berte to jako nástřel, byť plně funkční. Mohl bych si a vy byste určitě měli, pohrát s nějakými testy a věcmi kolem návratových hodnot, ale to nechám na každém zvlášť.
Pokud máte tedy tento modul ./mongo.ts
, pak v místě startu vaší aplikace stačí jednou navázat spojení. Třeba takto:
Z modulu ./mongo
si importuji funkce connect
a db
. Ty importuji jen ve vstupním modulu, bodě aplikace. Pak už je nepotřebuji.
A potom už kdekoliv v aplikaci opakovaně využívat sdílenou konektivitu:
Z modulu ./mongo
si importuju už jen funkci collection
pro samotný zápasi do kolekce visitors. Ta mi poskytuje úplně všechny možnosti a funkcionality original MongoDB funkce.
I takhle to jde…