NodeJS: sdílená konektivita na MongoDB

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…