2017-07-17 2 views
0

Ich führe sowohl die Front-End (React) und Back-End (Nodejs) auf dem gleichen Linux-Server.Fetch von localhost auf demselben Server

In meinem Front-End habe ich eine fetch Anfrage an das Back-End, die ich als fetch('http://10.25.248.238:3001/'), die IP (lokal, da diese Website für die interne Firma ist) und Port des Back-End angeben.

Gibt es eine Möglichkeit, Hard-Coding dieser Back-End-IP-Adresse zu vermeiden, damit es funktioniert, wenn sowohl das Front-End als auch das Back-End auf einen anderen Server verschoben wird?

Ich habe versucht http://localhost:3001, aber das tatsächlich versucht, von den localhost der Besucher der Website zu holen. fetch('/') hat auch nicht funktioniert.

Die Registrierung eines Domainnamens ist nicht geeignet, da diese Site nur für den internen Gebrauch gedacht ist.

+0

Wenn Sie sagen, „Front-End- und Back-End auf einen anderen Server verschoben wird“ meinen Sie sie immer auf der gleichen Maschine sein wird, oder dass das Backend auf einer Maschine und der Vorderseite bewegt werden zum anderen? –

+0

Sowohl das Front-End als auch das Back-End befinden sich immer auf derselben Maschine. – Avery235

Antwort

2

Eine einfache Lösung besteht darin, die Umgebungsvariablen in Ihren Webpack-Einstellungen zu definieren und sie an die React-App zu übergeben.

Sie können dev.webpack.config.js und prod.webpack.config.js erstellen und in jeder der Konfigurationsdatei verwenden webpack.DefinePlugin:

new webpack.DefinePlugin({ 
    BASE_URL: 'YOUR_SERVER_BASE_URL' 
}); 

Und in Ihrem App Reagieren Sie beziehen sie mit process.env.BASE_URL. Zum Beispiel:

let url = process.env.BASE_URL + '/user'; 
+0

Wo sollte ich diese 2 Dateien ablegen? Was muss ich noch tun? Nicht mit Webpack vertraut, habe ich 'create-react-app' verwendet. – Avery235

+0

Es scheint, dass Facebook-Team nicht viel Freiheit für Entwickler bietet, die aktuelle create-react-App zu erweitern. Überprüfen Sie diesen Beitrag: https://github.com/facebookincubator/create-react-app/issues/99 Ich denke, der beste Weg, um eine React-App zu erstellen, ist durch einen bekannten Yeoman-Generator oder einige gute Beispiel-Beispiele, so dass Sie mehr haben Kontrolle der Einstellungen, Umgebung usw. – MattYao

+0

Ich werde nur 2 Variablen deklarieren und wählen basierend auf 'process.env.NODE_ENV ===" development "'. Dennoch muss die Server-URL manuell bearbeitet werden, wenn sowohl das Front-End als auch das Back-End auf einen neuen Server verschoben werden. – Avery235

Verwandte Themen