Estoy lanzando una página web html en mi servidor NodeJS. Al ejecutar el archivo server.js , básicamente escribe datos json en un archivo, luego inicia el servidor Nodejs después de 3 segundos (para que el archivo HTML tenga tiempo suficiente para recuperar los datos escritos) como se muestra a continuación.
setTimeout(() => { const server = http.createServer((req, res) => { res.writeHead(200, { "content-type": "text/html" }); fs.createReadStream("index.html").pipe(res); }); server.listen(3000); console.log(`Server is running on http://localhost:3000/`); }, 3000); Pero, cuando busco el archivo sites.json , el contenido recibido es un código HTML en la pestaña de red.
<script> fetch('sites.json') .then(function (response) { return response.json(); }) .then(function (data) { appendData(data); console.log(data) }) .catch(function (err) { console.log('error: ' + err); }); function appendData(data) { var mainContainer = document.getElementById("myData"); for (var i = 0; i < data.length; i++) { var div = document.createElement("div"); div.innerHTML = 'Name: ' + data[i]; mainContainer.appendChild(div); } } </script>Traté de hacer una solicitud http y funcionó, por lo tanto, el problema solo ocurre cuando intento obtener archivos json localmente.
No estoy seguro de si esta es la forma correcta de alojar un servidor http, ya que es la primera vez que intento esto.