Wie funktioniert Winkel- und Express Routing arbeiten zusammen in einer mean.js app?

8

Ich kämpfe über Angular und Express Routing (übrigens, ich bin irgendwie neu in Express), ich habe Routen mit Angular - mit UI-Router - aber jetzt, dass ich anfange zu bauen ein MEAN.js Anwendung Ich merke, dass ich Server-Side-Routing und Client-Side-Routing behandeln kann ... und das ist, was mich verwirrt, hier sind einige meiner Fragen:

  • Wie sind sie anders?
  • Wenn ich zu Express-Routing umschalte, habe ich noch ein SPA?
  • Kann ich beides gleichzeitig benutzen? Wie? Ist es eine gute Übung? Hat es irgendeinen Nutzen?
  • Wann sollte ich nur eine davon verwenden?
  • Wie gehe ich mit Routenparametern um?
  • usw. ...

Wenn jemand diese Fragen und andere zusätzliche Dinge, die die Leute wissen müssen, ausführlich erklären kann, bin ich total dankbar.

Außerdem möchte ich Folgendes wissen: Muss ich Server-Dinge nur in Express einrichten oder muss ich in Node programmieren?

    
Jonathan Solorzano 11.09.2015, 04:27
quelle

3 Antworten

6

Routing in Express ist sightly anders als das, was es in eckigen

ist

In Express

  

Routing bezieht sich auf die Definition von Endpunkten (URIs) zu einem   Anwendung und wie sie auf Kundenanforderungen reagiert.

Wenn Sie also das Routing mit angularjs durchführen, müssen Sie die Route für Ihre HTML-Vorlage nicht mit express festlegen.

Sie verwenden einfach express in einer Weise, um Ihre RESTAPI zu erstellen und diese API dann mit angularjs $http oder $resource

zu konsumieren

Zusammenfassung:

  • Routing in Angular unterstützt die Idee hinter einem SPA. Letztendlich möchten Sie UI-basierte Routenänderungen (d. H. Kein Server-Aufruf / Logik erforderlich) über Angular verarbeiten. Jede Routenänderung, die das Back-End trifft und letztendlich Serverlogik erfordert, sollte Express-Routing verwenden.

Beispiel

Dies ist ein Express-Routing, um eine Rest-API zu erstellen.

%Vor%

jetzt in angularjs Aufruf funktioniert

%Vor%     
maddygoround 11.09.2015, 04:41
quelle
3

Nur zwei Cent hier. Andere Experten sollten mich korrigieren und weiter erklären:

Routing am Frontend bedeutet normalerweise Routing-Management in der URL nach #. Dies liegt daran, dass alles nach # vom Browser ignoriert wird. Dies wird also von eckigen verwendet, um im laufenden Betrieb Ajax-Aufrufe zu machen und Ressourcen abhängig vom Routenpfad nach # abzurufen.

Was Express-Handles ist, ist die URL vor #. Dies wird verwendet, um eine tatsächliche Anfrage vom Browser zum Server zu machen.

Wie sind sie anders: beantwortet

Wenn ich zu Express-Routing umschalte, habe ich immer noch ein SPA:

Sie können immer SPA haben, wenn Sie URLs manuell an der Frontend-Seite verwalten, während Sie Ajax-Aufrufe ausführen, um Ihre einzelne Seite zu füllen. Die Verwaltung von URLs am Frontend sollte mit der Absicht der Lesbarkeit erfolgen.

Kann ich beides gleichzeitig benutzen? Wie? :

Jeder benutzt beides. Ein SPA verwendet auch beide. Üblicherweise wird eine auf Authentifizierung basierende Sache durch Express-Routing gehandhabt, während Autorisierung und andere Routing-basierte Interaktionen, wie das Anfordern von Ressourcen und andere, Front-End-Routing verwendet wird. Selbst wenn Sie das Front-End-Routing für eine AJAX-Anfrage hinter der Szene verwenden, verlassen Sie sich immer noch auf das Routing von Express.

Ist es eine gute Übung? Hat es irgendeinen Nutzen? :

Verwenden des Express-Routings für die Authentifizierung und Bereitstellung von Ressourcen UND Verwendung von Winkel-Routing für das Front-End, um SPA in Aktion zu halten, ist immer eine gute Übung.

Wann sollte ich nur einen davon benutzen? : beantwortet

Wie gehe ich mit den Routenparametern um? :

Es gibt Parameter, die sowohl für die Frontendseite mit Routenparametern (bei Verwendung von ng-route) als auch am Backend mit Slug, bodyparser und anderen umgehen. Sie müssen etwas Zeit damit verbringen, diese zu lernen.

    
binariedMe 11.09.2015 04:50
quelle
1

Können wir beide verwenden

natürlich können Sie beide verwenden. Abhängig von Ihrer Anwendungsanforderung muss der Teil Ihrer App Spa sein, um eine bessere Nutzererfahrung zu ermöglichen, und welche Teilansichten müssen von Ihrer Express-App gerendert werden.

Wenn ich auf Express-Routing umschalte, habe ich noch ein SPA?

Wenn ein bestimmtes Routing nicht von angular gehandhabt wird und Sie eine Ansicht per Express-App generieren möchten, können Sie das tun. Wenn Sie ein komplettes Spa entwickeln möchten, müssen Sie eine API (http Endpunkte) in Ihrer Express-App entwickeln, um auf AJAX-Anfragen Ihrer eckigen App zu reagieren. Angular Routing ist alles über Clint Side-Routing, das verwendet wird, um Vorlage generieren und Daten vom Server abrufen (in Ihrem Fall Express) und rendern eine Ansicht. Über alle Ihre eckigen Routing-Aufrufe an Ihr Express-Routing, um JSON-Daten oder eine beliebige Vorlage abzurufen, um den Eindruck eines Spas zu vermitteln.

Beispiel

in Express haben wir

%Vor%

Ihre Startseite muss alle eckigen Skriptdateien enthalten, um die eckige App zu initialisieren

im Clint-Side-Code können Sie

haben %Vor%

Kann ich beides gleichzeitig benutzen? Wie? Ist es eine gute Übung? Hat es einen Vorteil?

Ja, wir können beide gleichzeitig benutzen. Es hängt von Ihrer Anwendungslogik ab, dass sie keinen Schaden oder Nutzen daraus ziehen.

Wann sollte ich nur einen davon verwenden? Gehen Sie mit Express-Routing nur, wenn Sie mehr über Suchmaschinenoptimierung besorgt sind. Da SPA nicht standardmäßig suchmaschinenfreundlich sind, müssen Sie einige zusätzliche Maßnahmen ergreifen, um es suchmaschinenfreundlich zu machen.

Wie gehe ich mit Routenparametern um? Es hängt davon ab, welches Winkelrouting Sie verwenden. Ich meine Vanille Winkelrouting oder UI-Routing. Aber das Konzept ist für beide gleich

Parameter übergeben

Für die Übergabe von Parametern an den Server mit UI-Routing Ссылка

für das UI-Routing folgen Sie diesem Link Ссылка

Wenn Ihre App nicht komplexer ist, interessieren Sie sich nicht für verschachtelte Ansichten, Kindansichten usw Meine Vorschläge gehen mit eckigem Plain-Routing. Kein Zweifel, UI-Router bietet mehr fortschrittliche Routing-Konzepte, aber Lernkurve ist auch steil. Wenn Sie App einfach ist, gehen Sie mit eckigen Routing

    
manas 11.09.2015 05:14
quelle