2015-02-11 18 views
17

Zacząłem używać kątowego w moich generowanych ekspresowo projektach i kocham to. Niedawno zaimplementowałam przekierowanie kątowe do jednego z moich projektów testowych i zastanawiam się, jakie są zalety i wady korzystania z trasowania kątowego nad routingiem czysto ekspresowym/węzłowym (np. Czy są problemy techniczne w ten sposób, czy może SEO, czy też jest to całkowicie niepotrzebne).Stos MEAN: routing kątowy a trasowanie ekspresowe

FYI na mojej instalacji: Mam ekspresowe renderowanie głównego szablonu indeksu, a także routing wszystkich żądań (catch all) do głównego szablonu indeksu, a następnie używam kątowego do kierowania do szablonów częściowych z głównego indeksu szablon

+1

Jeśli używasz kanciastych, "najlepszym" (moim zdaniem) sposobem byłoby pozwolić kątowe, aby zrobić to, co jest najlepsze i obsługiwać routing na własną rękę, i po wyrażeniu po prostu służyć wszystkie 404 do index.html –

+0

@ KevinB masz na myśli pozwolić express obsługi routingu? – zero

+0

Nie, to znaczy niech kątowe wykonają routing. express po prostu servs up index.html i api do uzyskiwania dostępu do danych. –

Odpowiedz

24

Przy średnim stosie (mongo, ekspresowy, kątowy) będziesz prowadził po obu końcach.

Express będzie obsługiwał statyczne index.html i css/js/images i api, a kątowe będą wchodzić w interakcje z api, aby uzyskać dane z mongo.

Trasowanie ekspresowe będzie wykonywane przede wszystkim dla interfejsu API, a routing w kanciastym zostanie przeprowadzony w celu obsługi interfejsu użytkownika aplikacji. Express nie zwróci żadnego html innego niż index.html i wszelkich częściowych szablonów, które napisałeś pod kątem, ale nawet to można wyeliminować, kompilując wszystkie szablony bezpośrednio do plików js za pomocą narzędzia do budowania, takiego jak gulp/ground .


pewno jest to możliwe, aby przejść w 100% do jednej lub drugiej strony jednak jest to niepraktyczne, bo skończysz nieefektywnie stosując jedną stronę lub drugą stronę. Na przykład, jeśli zrobiłeś wszystkie swoje trasy z ekspresowym i użytym kanciastym na każdej pojedynczej stronie, ignorowałbyś całą funkcjonalność pojedynczej strony i routing angularjs, pozostawiając jedynie cel budowania strony, która prawdopodobnie mogłaby być zrobiona więcej efektywnie z ekspresowym i jadeitowym (lub innym silnikiem szablonowym). Tak naprawdę nie jest możliwe podążanie w innym kierunku i wykonywanie wszystkich tras z kątowym, ponieważ kątowe wymaga api do pozyskania danych, chyba że uwzględnisz wszystkie dane z przodu w inline w html, który na pewno się zgodzisz jest złym pomysłem. (to również eliminuje mongo w tym momencie ..)

5

Rozwiązują dwa różne problemy. Routing kątowy (ui-router) jest po stronie klienta - ładowanie poprawnych widoków interfejsu użytkownika. Express routing to strona serwera - udostępniane przez Ciebie interfejsy API usług REST.

+0

Niezupełnie, jest to całkowicie możliwe do wykonania całego routingu z ekspresowym, obsługującym poszczególne trasy, które eksponują pojedyncze aplikacje kątowe, chociaż to nie brzmi zbyt praktycznie –

+0

, więc to, o co pytam, jest główną zaletą pozwalania kątowej większości z routingu vs ekspresowe robi wszystko? – zero

+0

Hmm .. Ta odpowiedź miała sens –