2016-08-02 1 views
1

Ich habe gerade meine Anwendung auf Angular CLI migriert. Ich habe bereits meinen REST-API-Node-Server eingerichtet. Ich möchte in der Lage sein, mein Front-End mit ng serve auszuführen, um die Funktion automatisches Neuladen jedes Mal zu haben, wenn ich eine Datei ändere, aber es auch eine Verbindung zu meinem Knoten-Back-End haben.Wie kann ich meine App (die über ng serve läuft) dazu bringen, sich mit einem Node-Backend zu verbinden und dabei die Funktion zum automatischen Nachladen beizubehalten?

Livereload Server läuft auf Port 49152 Aufschlagen auf Port 4200 Knoten auf Port 8080

Alle meine Knoten Routen sind mit api vorangestellt.

Ist das möglich?

+0

Was genau funktioniert nicht? Ich habe das schon mal mit einem Tomcat Server gemacht und keine Probleme. Ich bin mir nicht sicher, wie ein Knotenserver irgendetwas verändern würde. – Pace

+0

Nun, wenn meine eckige App vom Entwicklungsserver auf Port 4200 bedient wird, werden alle Back-End-API-Anfragen auch an Port 4200 gesendet. Wie könnte ich zwei Server haben, die denselben Port hören? Theoretisch könnte ich meine Dienste ändern, um das Back-End an einem anderen Port anzurufen, aber das wäre ein Schmerz, abgesehen davon, dass ich dieselbe Herkunftsrichtlinie brechen würde. – grim

+1

Ok, ich sehe dein Problem jetzt. Ja, in der Vergangenheit habe ich das mit dem Grunt-Server gelöst, indem ich einen Proxy eingerichtet habe (der Grunt-Server würde alle Anfragen übernehmen, die nicht mit einer statischen Front-End-Ressource übereinstimmten). Es sieht so aus als gäbe es eine [Anfrage] (https://github.com/angular/angular-cli/issues/889) für ein solches Feature in angular-cli, aber es wurde noch nicht implementiert. Sie können sich auch [diese Frage] ansehen (http://stackoverflow.com/questions/37172928/angular-cli-server-how-to-proxy-api-requests-to-another-server). – Pace

Antwort

0

Also, weil eine formelle Antwort nicht für diese eingereicht worden ist, werde ich es versuchen. Nehmen wir an, Sie haben Ihre node powered api auf dem 8080. Sie können das in einem Terminal/cmd-Fenster mit Ihrem typischen node server.js Befehl starten. Dann wird in der gleichen Projektordner, die gleiche Sie haben Ihre package.json Sie eine proxy-config.json Datei mit folgendem Inhalt

{ 
    "/api": { // or whatever your endpoint is in your api routes 
     "target": "http://localhost:8080", // your node server.js api 
     "secure": false 
    } 
} 

hinzufügen möchten, dann können Sie Ihr Projekt mit ng serve --proxy proxy-config.json starten.

Verwandte Themen