Jestem zdezorientowany, kiedy można użyć bloku isServer do umieszczania rzeczy. Oczywiście, wywołania bazy danych itp. Czy to pokazuje się w przeglądarce klienta?Meteor: czy kod znajduje się wewnątrz bloku Meteor.isServer, który można odczytać z klienta?
Odpowiedz
radziłbym przed wykorzystywaniem, że zamiast umieścić swoje rzeczy w folderach zgodnie z zaleceniami na unofficial meteor faq
Nawet jeśli używasz if (Meteor.isServer) {...}
ten blok nadal będą wysyłane do klienta, jeśli nie używać struktury folderów powyżej tj. umieszczenie go w /server
. Ale zignoruje cały kod w środku.
Po kodzie po stronie serwera należy umieścić kod, który ma być uruchamiany na serwerze, tj. Funkcje publikowania, oraz dane, które byłyby bardziej wrażliwe. & użytkownik nie powinien mieć dostępu.
Myślę, że jest on wysyłany do klienta, chyba że znajduje się w folderze serwera. W odpowiedzi na jeden z komentarzy na temat współdzielenia zmiennych globalnych, używam tego wzorca. Utwórz tę samą globalną zmienną odpowiednio w folderach klienckich i serwerowych, a także poza tymi folderami dla dowolnego współużytkowanego kodu. Zainicjuj zmienną globalną w każdym miejscu, testując, czy już istnieje.
MyVar = typeof MyVar === 'undefined' ? {} : MyVar;
Następnie wystarczy umieścić metody, gdzie ich potrzebujesz. Na przykład, będę mieć obiekt użytkownika z metodą, która sprawdza, czy użytkownik jest autoryzowany. Opublikuję metodę raz na globalnym użytkowniku serwera, a raz na globalnym użytkowniku klienta. Metody są różne, ponieważ wersja serwera sprawdza właściwości niestandardowe obiektu użytkownika, które nie są dostępne na kliencie. Następnie w metodzie Meteor.methods, która działa zarówno na kliencie, jak i na serwerze, można wywołać metodę autoryzacji i wywoła różne metody w zależności od tego, czy działa ona na kliencie czy serwerze.
ja zadawałem sobie to samo pytanie dziś i natknęliśmy się na ten pakiet:
https://github.com/mquandalle/meteor-minifiers
Wygląda Meteor nie usuwa Meteor.isServer
Blocks domyślnie. Zobacz tę dyskusję:
https://groups.google.com/forum/#!topic/meteor-talk/iHat47f6iGE
Nie używałem go już teraz, ale wygląda obiecująco.
Jeśli nie chcesz korzystać z dodatkowego pakietu, zalecamy użycie folderów client
i server
. Tylko pliki w folderze client
są wysyłane do klienta.
- 1. Ustalenie, czy punkt znajduje się wewnątrz geometrii
- 2. Określ, czy punkt znajduje się wewnątrz wielokąta?
- 3. Jak wyodrębnić obiekt JSON, który znajduje się wewnątrz obiektu json
- 4. jQuery: Sprawdź, czy zawartość znajduje się wewnątrz elementu iframe.
- 5. Czy kod zaplecza Meteora jest zawsze dostępny po stronie klienta?
- 6. Ciągle otrzymuję wyjątek, mimo że kod znajduje się w bloku prób/catch
- 7. Czy punkt wewnątrz lub na zewnątrz wieloboku, który znajduje się na powierzchni kuli ziemskiej?
- 8. Czy `finally` blokuje się w przypadku, gdy` return` znajduje się w bloku `try` lub` catch`?
- 9. Silverlight HttpWebRequest.Create zawiesza się wewnątrz bloku asyncowego
- 10. Czy można określić, czy punkt GeoJSON znajduje się wewnątrz wieloboku GeoJSON przy użyciu JavaScriptScript?
- 11. Reaktywność po stronie klienta z Meteor?
- 12. Który algorytm sortowania znajduje się za NSSortDescriptor?
- 13. Mongodb: Sprawdź, czy punkt znajduje się wewnątrz zapisanego wielokąta.
- 14. Sprawdź, czy punkt wielokątny znajduje się wewnątrz innej ulotki
- 15. Jak ustalić, czy ścieżka znajduje się wewnątrz katalogu? (POSIX)
- 16. Sprawdź, czy znacznik znajduje się wewnątrz promienia okręgu
- 17. określić, czy punkt znajduje się wewnątrz dowolnego kształtu?
- 18. Jak sprawdzić, czy punkt znajduje się wewnątrz elipsoidy?
- 19. Sprawdź, czy kursor znajduje się wewnątrz elementu rodzica
- 20. Gdzie znajduje się skompilowany kod JIT?
- 21. Upewnienie się, że okno WPF znajduje się wewnątrz ekranu
- 22. Dlaczego mój kod graficzny nie działa, chyba że w bloku kodu znajduje się System.out.println?
- 23. Czy można odczytać gcc z potoku?
- 24. Gdzie znajduje się kod źródłowy ConstraintLayout?
- 25. Wykrywanie Dispose() z wyjątkiem wewnątrz przy bloku
- 26. Wyjątki wewnątrz bloku zamka
- 27. Gdzie znajduje się plik .js po stronie klienta Socket.IO?
- 28. Jak korzystać z dyrektywy, który znajduje się w innym module
- 29. Czy można odczytać plik data.table z PostgreSQL?
- 30. Czy można odczytać kdb z nazwanego potoku?
Jak udostępnić wspólne zmienne globalne w kodzie serwera i kodzie klienta? Czy nadal muszę używać 'MEteor.isServer {}' wewnątrz katalogu serwera? – KJW
Możesz umieścić wspólny kod w folderze głównym projektu bez Meteor.isServer i bez Meteor.isClient, ten wspólny kod zostanie wykonany zarówno na kliencie, jak i na serwerze – Akshat