Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

211
Views
La aplicación React no puede comunicarse con mi aplicación express en producción con sus solicitudes, pero funciona bien en desarrollo

Estoy tratando de enviar una solicitud de obtención simple a mi servidor express en la ruta mywebsite.com/test. El servidor debería responder con {"test": "test"}. Esto funciona bien en el desarrollo en localhost, pero no importa lo que intente en un entorno de producción, no puedo obtener una respuesta de mi servidor. Estoy alojando este sitio web en un GoDaddy VPS con CentOS 7. La aplicación de reacción se carga bien en vivo, pero cualquier solicitud que hago devuelve un documento html con una etiqueta que dice "Necesita habilitar JavaScript para ejecutar esta aplicación". (Estoy viendo esto en la sección de respuesta de la pestaña de red en Chrome DevTools)

Ejecuté el backend con el nodo de ssh y dice que está escuchando en el puerto 5000. He agregado un proxy a package.json, así como una página de inicio como tal:

 "proxy": "http://localhost:5000", "homepage": "."

Intenté que el campo de la página de inicio fuera http://mywebsite.com también sin resultados.

Aquí está la configuración de mi aplicación express:

 const express = require('express'); const PORT = process.env.PORT || 5000; const app = express(); app.use(express.json()); app.get('/', function(req, res) { res.status(200).send() }); app.get('/test', (req, res) => { res.status(200).json({test: "test"}); }) app.listen(PORT, async function() { console.log(`Listening on Port ${PORT}`); });

En desarrollo recibo esto en la pestaña de red como se esperaba:

 {"test":"test"}

Estoy completamente perdido en este punto, se siente como si hubiera intentado todo.

about 4 years ago · Santiago Gelvez
1 answers
Answer question

0

Resuelto. Resulta que mi problema estaba en mi archivo .htaccess.

Entiendo que no debería usar .htaccess si tengo un VPS, pero siendo bastante nuevo en el manejo de un VPS, este fue mi problema:

 <IfModule mod_rewrite.c> RewriteBase / RewriteRule ^index\.html$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule . /index.html [L] </IfModule>

Agregué esto debido a un problema con nuestro React Router. Esto resolvió ese problema, pero en consecuencia reescribió todas mis solicitudes de back-end. Después de eliminar esto, logré agregar esta regla: (de: Tengo alojamiento web compartido de Godaddy. Necesito alojar el sitio web node.js. ¿Puede alojar el sitio? )

 RewriteRule (.*) http://localhost:5000/$1 [P,L] DirectoryIndex index.html

Lo que permitió que todo volviera a funcionar.

about 4 years ago · Santiago Gelvez Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!