2017-07-17 2 views
0

Je cours à la fois le front-end (React) et le back-end (nodejs) sur le même serveur Linux.fetch de localhost sur le même serveur

Dans mon frontal, j'ai une demande fetch à l'arrière-plan que je dois spécifier comme fetch('http://10.25.248.238:3001/'), l'adresse IP (locale parce que ce site est destiné à une utilisation interne de l'entreprise) et le port de l'arrière-plan.

Existe-t-il un moyen d'éviter le codage en dur de cette adresse IP principale afin qu'elle fonctionne toujours si le serveur frontal et le serveur principal sont déplacés vers un autre serveur?

J'ai essayé mais cela essaye d'aller chercher dans le localhost des visiteurs du site. fetch('/') ne fonctionnait pas non plus.

L'enregistrement d'un nom de domaine n'est pas approprié car ce site est uniquement destiné à un usage interne.

+0

Quand vous dites « front-end et back-end est déplacé vers un autre serveur » voulez-vous dire qu'ils seront toujours sur la même machine ou que le back-end sera déplacé vers une machine et l'avant à un autre? –

+0

L'avant et l'arrière seront toujours sur la même machine. – Avery235

Répondre

2

Une solution simple consiste à définir les variables d'environnement dans vos paramètres Webpack et à les transmettre à l'application React.

Vous pouvez créer dev.webpack.config.js et prod.webpack.config.js et dans chacun des fichiers de configuration, utilisez webpack.DefinePlugin:

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

Et dans votre App React vous pouvez consulter les avec process.env.BASE_URL. Par exemple:

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

Où devrais-je mettre ces 2 fichiers? Quoi d'autre dois-je faire? Je ne connaissais pas webpack, j'ai utilisé 'create-react-app'. – Avery235

+0

Il semble que l'équipe de Facebook n'offre pas beaucoup de liberté aux développeurs pour étendre l'application create-react-app actuelle. Vérifiez ce post: https://github.com/facebookincubator/create-react-app/issues/99 Je pense que la meilleure façon de créer une application React est de passer par un générateur de yeoman bien connu ou de bons exemples types, donc vous avez plus contrôle des paramètres, environnement etc. – MattYao

+0

Je vais juste déclarer 2 variables et choisir en fonction de 'process.env.NODE_ENV ===" développement "'. Cependant, l'url du serveur doit être modifiée manuellement lorsque le serveur frontal et le serveur principal se déplacent vers un nouveau serveur. – Avery235