Jeśli już połączyłeś się z bazą danych, once
zdarzenie nie zostanie ponownie uruchomione. Baza danych była już podłączona dla całego procesu NodeJs, gdy była połączona globalnie (poza funkcją).
Wywołanie mongoose.connect('mongodb://localhost/test');
nawiązuje połączenie i otwiera je.
Tak więc, zamiast otwierać go przy każdym wywołaniu funkcji (co byłoby nieefektywnym sposobem interakcji z MongoDB), connect
natychmiast po uruchomieniu aplikacji NodeJs i rozważ, że wystąpi okres, w którym połączenie może być niedostępne (ponieważ jest asynchroniczne) lub nie uruchamiaj aplikacji (listen
) do momentu nawiązania połączenia (lub przekroczenia limitu czasu). W przypadku Mongoose, do momentu nawiązania połączenia, wszystkie polecenia są buforowane (ale może to nie być zachowanie, którego oczekujesz). Możesz użyć open
zdarzenie, jeśli chcesz wiedzieć, kiedy połączenie zostanie zakończone.
Połączenie znajduje się tutaj:mongoose.connection
jeśli używasz connect
funkcja tworzenia połączenia.
Po otwarciu połączenia możesz go użyć ze swojego popSingleData
funkcja bez użycia once
zdarzenie i wywołanie zwrotne. Pula połączeń jest utrzymywana automatycznie.
Więcej informacji o połączeniach znajdziesz tutaj .