Estoy tratando de crear un servidor web simple para ejecutar mi archivo html local, y ahora puedo ejecutar un servidor en localhost usando el código a continuación
var http = require('http'); var fs = require('fs'); var index = fs.readFileSync('index.html', 'utf8'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'html'}); res.end(index); }).listen(3000);Pero hay un problema que cada vez que cambio mi archivo html, la página web en localhost sigue siendo la anterior, necesito reiniciar el servidor para que los cambios sean visibles.
Quiero mejorar eso y traté de usar koa o express , como el código a continuación
const express = require("express"); const app = express(); app.listen(3000, () => { console.log("Application started and Listening on port 3000"); }); app.get("/", (req, res) => { res.sendFile("test.html"); });Y descubrí que express puede servir archivos html en tiempo real, no necesito reiniciar el servicio cuando cambian los archivos.
¿Cómo puedo usar http moudle para lograr eso?
Actualmente, lee el archivo cuando se inicia el programa. Luego, cada vez que recibe una solicitud, entrega los datos de la variable.
Mueva ese código dentro de la función de devolución de llamada que se ejecuta cuando recibe una solicitud, luego se actualizará cada vez que ingrese una solicitud.
http.createServer(function (req, res) { var index = fs.readFileSync('index.html', 'utf8'); res.writeHead(200, {'Content-Type': 'html'}); res.end(index); }).listen(3000);Puede evitar leer el archivo en cada solicitud si tiene la variable fuera de la función (como en su código original) y observa los cambios en el archivo (y actualiza la variable en respuesta).
Dicho esto, el uso de Express y su módulo estático proporcionará beneficios con el almacenamiento en caché y lo recomendaría en lugar de utilizar el suyo propio.