Deployment

Simplest

Assuming create-react-app, you need to build with yarn build then you can just statically serve the build folder's index.html

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

app.use(express.static(path.join(__dirname, 'build')));

//OR 

app.get('/', function(req, res) {
  res.sendFile(path.join(__dirname, 'build', 'index.html'));
});

app.listen(9000);

Express Server

app.get('/*', function (req, res) {
   res.sendFile(path.join(__dirname, 'build', 'index.html'));
 });

When developing, inside client/package.json for the create-react-app web pack

"proxy": "http://localhost:3001/",

Then you can simply

fetch(`/api/food`....

Then although the react app is running on 3000, api request like above will be sent to 3001. And in production, this will appriorately just hit the main domain :)

Last updated