Próbuję zrozumieć, kiedy najlepiej jest użyć każdego z poniższych. Oto moje podstawowe zrozumienie:Express.js: app.locals vs req.locals vs req.session
app.locals - dobre do przechowywania zmiennych globalnych na poziomie aplikacji. wszyscy użytkownicy/sesje zobaczą te same wartości dla tych zmiennych. zmienne są dostępne dla wszystkich widoków.
res.locals - dobre do przechowywania zmiennych dla określonego cyklu żądanie/odpowiedź. zmienne są dostępne tylko dla widoku powiązanego z odpowiedzią.
req.session - dobre do przechowywania zmiennych związanych z unikalną sesją użytkownika (np. Nazwa użytkownika). te zmienne powinny być dostępne dla wszystkich widoków dla unikalnego użytkownika/sesji.
Szczególny przypadek użycia mam: Użytkownik uruchamia kwerendę, która pobiera dane z mongodb. Teraz chcę, aby wynik tego zapytania, który jest tablicą json, jest dostępny jako zmienna dla wszystkich widoków (żądań http). Jaki jest najlepszy sposób "przechowywania" tablicy wyników, aby każdy widok mógł uzyskać do niej dostęp?
Dzięki
Sam prawie odpowiedziałeś na to pytanie. req.locals jest dla danych, które powinny być dostępne w widokach dla bieżącego żądania. –
to 'res.locals', a nie' req.locals' – Daniel