web-dev-qa-db-fra.com

Configurer un serveur proxy pour créer une application React

J'ai démarré une application React en utilisant create-react-app et exécuté le npm run eject script pour accéder à tous les fichiers. J'ai ensuite installé express et créé server.js fichier situé au même niveau que package.json fichier

ceux-ci sont server.js contenu du fichier:

const express = require('express');
const app = express;

app.set('port', 3031);

if(process.env.NODE_ENV === 'production') {
  app.use(express.static('build'));
}

app.listen(app.get('port'), () => {
  console.log(`Server started at: http://localhost:${app.get('port')}/`);
})

Rien de fou ici, juste la configuration de futurs proxys d'api où je dois utiliser des secrets et comme je ne veux pas exposer mon api.

après cela, j'ai ajouté un "proxy": "http://localhost:3001/" à mon package.json fichier. Je suis maintenant bloqué car j'ai besoin de savoir comment démarrer correctement mon serveur et utiliser ce server.js fichier en mode développement puis en production.

Idéalement, il serait également bon d'utiliser plus d'un proxy, c'est-à-dire /api et /api2

9
Ilja

Vous n'avez pas eu à éjecter pour exécuter votre server.js. Vous pouvez simplement l'exécuter avec node server.js ensemble avec create-react-app.

Vous pouvez toujours faire npm start même après l'éjection pour démarrer votre serveur de développement.

Courir /api1 et /api2, il vous suffit de le gérer dans votre server.js fichier et cela devrait très bien fonctionner. Vous devez faire correspondre le port dans votre server.js et celui dans proxy paramètres à l'intérieur package.json - dans ce cas, ce devrait être "proxy": "http://localhost:3031"

6
jpdelatorre