2017-04-22 2 views
1

Ich baute einen einfachen Express-API-Server auf port 8080. In einem anderen Port (3000) baue ich die Client-Seite mit react, die Daten von meinem Express-API-Endpunkt abruft. Dazu muss ich beide Anwendungen auf einem separaten Port ausführen. Wie kann ich beide im selben Port laufen lassen zB. 8080? Ich bin ziemlich neu in diesem Bereich. Hilfe würde wirklich geschätzt werden.Wie boote ich react und node api server am selben Port?

Antwort

2

1/Wenn Sie sie aufgrund von CORS-Problemen auf demselben Port ausführen müssen, ist es möglicherweise einfacher (und bewährte Vorgehensweise), CORS headers auf Ihrem API-Server einzurichten, um Anfragen vom Ursprung zuzulassen: 3000.

2/Um sowohl die API als auch die statischen Seiten und Skripts auf demselben Port zu verwenden, können Sie entweder Ihren API-Server so ändern, dass Anforderungen für den statischen Inhalt verarbeitet werden, oder einen Reverse-Proxy verwenden. Ich würde nginx to set that up empfehlen (und den statischen Inhalt auch zu dienen, wenn Sie können).

Beispiel nginx config:

location /api/ { 
    proxy_pass http://localhost:8080/; 
} 

location/{ 
    proxy_pass http://localhost:3000/; 
} 
+0

Ich habe die cors Frage bedeckt und auch statische Seiten ist nicht das, was ich suche hier. Ich benutze reagieren für das Front-End –

+0

Ich meinte statisch von einem Server Sicht. Die React App wird vom Client interpretiert. Es sei denn, Sie machen serverseitiges Rendering? Wie auch immer, ersetzen Sie "statische Seiten" durch "Front-End", wenn es für Sie sinnvoller ist. Sie möchten dennoch einen Reverse-Proxy verwenden, um beide Anwendungen unter demselben Ursprung zu gruppieren. – Touffy

+0

Danke das ist eigentlich eine interessante Idee, die statische mit Front-End ersetzt. aber bisher habe ich nirgends Beispiele davon gesehen. Bedeutet das, dass ich die 'view engine' auf' jsx' gesetzt habe? Könnten Sie mir bitte irgendwelche Beispiele oder Artikel oder Videos zur Verfügung stellen? –

Verwandte Themen