Quiero enviar un archivo html como respuesta usando express , por lo que necesito dar la posición o la path del archivo index.html .
así que esta es mi estructura de archivos -
MyWebsite Html index.html Css index.css Js index.jsSi aún no comprende la estructura del archivo, esta es la imagen de la estructura del archivo:
así que en mi JavaScript he escrito algo como esto:
import express from 'express'; import path from 'path'; import { fileURLToPath } from 'url'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); const app = express(); const port = process.env.port || 8080; app.get('/', (req, res) => { const htmlFile = path.join(__dirname, '/index.html'); res.sendFile(htmlFile) }); app.listen(port);dando error -
Error: ENOENT: no such file or directory, stat 'F:\Websites\MyWebsite\js\index.html' ¡No está trabajando!. ¡No puedo dar la ruta o el nombre de la carpeta! ¿Cómo puedo obtener la ruta de la carpeta index.html ?
¡cualquier ayuda será apreciada!
es simple, ha configurado back-word para que el servidor pueda encontrarlo index.html cambie su código a
app.get('/', (req, res) => { const htmlFile = path.join(__dirname, '/index.html'); res.sendFile(htmlFile) });nuevo código será
app.get('/', (req, res) => { const htmlFile = path.join(__dirname, '../html/index.html'); res.sendFile(htmlFile) });espero que funcione para ti es trabajo para mí
puede usar el módulo 'ruta' para mover un directorio hacia atrás.
path.join(__filename, '..', 'html', 'index.html')de esta manera evitarás barras y eliminarás problemas al ejecutar tu aplicación en diferentes sistemas operativos.