En el directorio principal:
Y dentro de server.js:
//Cannot access index.html file.readFile('index.html', 'utf8', function(err, contents){ //some code });Específicamente, ¿cómo accedemos a stylesheet.css e index.html ?
Para acceder a carpetas en un directorio de nivel superior, puede usar .. en su ruta.
Acceda a index.html en server.js
//access top level directory using `..` file.readFile('../index.html', 'utf8', function(err, contents){ //some code }); file.readFile('../css/stylesheet.css', 'utf8', function(err, contents){ //some code }); Idealmente, siempre importaría desde rutas absolutas. Eso evita romper su aplicación cuando la reestructura. Sugiero iniciar siempre su aplicación desde el directorio raíz de su proyecto como node js/server.js .
Al iniciarlo desde la raíz, la variable process.cwd() (directorio de trabajo actual) siempre apuntará al directorio raíz del proyecto y las lecturas de archivos se pueden realizar usando:
var { join } = require('path') var htmlFile = join(process.cwd(), 'index.html') var cssFile = join(process.cwd(), 'css', 'stylesheet.css') // read html file file.readFile(htmlFile, 'utf8', function(err, contents){ //some code }); // ...cuando inicia el servidor, se establece una variable global llamada __dirname que contiene la ruta absoluta de la carpeta en la que se encuentra server.js . Ahora podemos usar ese valor para leer archivos relativos al archivo server.js . En el siguiente código, utilicé path.join() para construir la ruta a los archivos a los que desea acceder. Los puntos dobles ( .. ) es el directorio sobre la carpeta js.
const fs = require("fs"); const path = require("path"); // Get the absulote path of the files const htmlFile = path.join(__dirname, "..", "index.html"); const cssFile = path.join(__dirname, "..", "css", "stylesheet.css"); // Read files fs.readFile(htmlFile, "utf8", function (err, content) { console.log(content); }); fs.readFile(cssFile, "utf8", function (err, content) { console.log(content); });Intente agregar ".", por lo que será:
fs.readFile("./../index.html", "utf8", (err, content){ return })