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

446
Views
Node.js + Express: ¿Qué necesito para servir la ruta de la carpeta específica a express.static?

Escribí el siguiente código:

 var express = require('express'); var app = express(); app.use('/', express.static(__dirname )); app.get('/', function (req, res) { res.sendFile('./dist/index.html'); }); app.listen(3000, function() { console.log("Listening on port 3000"); });

que no funciona Cuando abro el navegador y voy a "localhost: 3000", aparece el error:

la ruta debe ser absoluta o especificar la raíz para res.sendFile

Por supuesto, una vez que arreglo la línea que comienza con "app.use..." para:

 app.use('/', express.static(__dirname + "./dist"));

entonces todo funciona bien.

¿Puedes explicar por qué? ¿Qué tiene de malo dar a "express.static" una ruta de una carpeta principal de la carpeta directa del archivo enviado?

about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Prueba a cambiar el orden. En vez de:

 app.use('/', express.static(__dirname )); app.get('/', function (req, res) { res.sendFile('./dist/index.html'); });

Probar:

 app.get('/', function (req, res) { res.sendFile(path.join(__dirname, './dist/index.html')); }); app.use('/', express.static(__dirname)); // OR: app.use('/', express.static(path.join(__dirname, 'dist')));

Además, use path.join() para unir rutas. Primero debe solicitar la path :

 var path = require('path');

Consulte esta respuesta para obtener más información sobre el servicio de archivos estáticos y por qué es importante path.join :

  • Cómo servir una imagen usando nodejs

Ahora, su problema no se trataba de express.static sino de res.sendFile . Cuando cambió la ruta express.static a una diferente, es probable que express.static haya encontrado el archivo que deseaba enviar previamente con res.sendFile y el controlador con res.sendFile no se ejecutó en absoluto. Antes del cambio, express.static no encontraba el archivo index.html y pasaba la solicitud al siguiente controlador, que tenía una mala invocación de res.sendFile . Es por eso que apareció para resolver el problema con el error, porque ya no se llamaba al código que causaba el error.

about 4 years ago · Santiago Trujillo 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!