2015-02-11 5 views
17

Ich habe angefangen mit eckigen in meinen Express-generierten Projekten und ich liebe es. Kürzlich habe ich das Angular Routing in eines meiner Testprojekte implementiert und ich frage mich, welche Vor- und Nachteile die Verwendung von Angular Routing gegenüber reinem Express/Node Routing hat (zB gibt es technische Probleme, oder vielleicht SEO, oder ist es komplett) nicht notwendig).MEAN Stack: Winkelrouting vs Express-Routing

FYI auf meinem Setup: Ich habe Express Rendern der Hauptindex Vorlage sowie Routing aller Anfrage (ein Catch alle) an die Hauptindexvorlage und dann benutze ich eckig, um Teilvorlagen aus dem Hauptindex zu routen Vorlage

+1

Wenn Sie Winkel verwenden, wäre die "beste" (meiner Meinung nach) Art und Weise zu erlauben, eckig zu tun, was es am besten ist und das Routing auf eigene Faust, und drück einfach alle 404's an die index.html –

+0

@KevinB du drückst aus, meinst du, dass du das Routing übernehmen kannst? – zero

+0

Nein, ich meine, lass eckig das Routing machen. express einfach services up index.html und eine API, um auf Daten von zuzugreifen. –

Antwort

24

Mit dem mittleren Stapel (Mongo, Express, Winkel) haben Sie Routing an beiden Enden.

Express wird dienen Ihre statische index.html und css/js/Bilder und Ihre API, und angular wird mit der API interagieren, um Daten von Mongo zu erhalten.

Routing mit Express wird in erster Linie für die API durchgeführt, und Routing in eckigen wird vorgenommen, um das Front-End Ihrer Anwendung zu behandeln. Express gibt keinen anderen HTML-Code als index.html und alle Teiltabellen zurück, die Sie für angular geschrieben haben, aber selbst das kann eliminiert werden, indem alle Vorlagen mit einem Build-Tool wie gulp/grunt direkt in Ihre js-Dateien kompiliert werden .


Es ist sicherlich möglich, 100% zu einer Seite oder der anderen zu gehen, ist es jedoch unpraktisch ist, weil Sie uneffizient eine Seite mit am Ende dann oder die andere. Wenn Sie zum Beispiel das gesamte Routing mit express und angular auf jeder einzelnen Seite durchgeführt haben, würden Sie die Funktionalität der einzelnen Seiten und das Routing von angularjs ignorieren, so dass nur die Seite erstellt werden muss, die wahrscheinlich mehr getan werden könnte effektiv mit Express und Jade (oder jedem anderen Templating-Engine.) Es ist nicht wirklich möglich, in die andere Richtung zu gehen und all Ihre Routing mit eckigen, weil eckig erfordert eine API, um Daten aus, es sei denn, Sie alle Daten enthalten vorne inline in der html, das bin ich sicher, du wirst zustimmen, ist eine schlechte Idee. (Es beseitigt auch Mongo an diesem Punkt.)

5

Sie lösen zwei verschiedene Probleme. Angular Routing (Ui-Router) ist Client-Seite - Laden der richtigen Ui-Ansichten. Express-Routing ist serverseitig - die REST-APIs, die Sie bereitstellen.

+0

Nicht genau, es ist durchaus möglich, all Ihre Routing mit Express zu tun, die einzelnen Routen, die einzelne Winkelanwendungen ausgesetzt, obwohl das klingt nicht sehr praktisch –

+0

so was ich frage ist, was ist der Hauptvorteil Winkel Winkel machen die Mehrheit der routing vs express alles tun? – zero

+0

Hmm .. Diese Antwort ergab am meisten Sinn –