javascript - llamar - fs: ¿cómo puedo ubicar una carpeta principal?
llamar archivo javascript desde html (8)
La forma más fácil sería usar path.resolve
:
path.resolve(__dirname, ''..'', ''..'');
¿Cómo escribo esto para volver a subir los niveles de los padres 2 para encontrar un archivo?
fs.readFile(__dirname + ''foo.bar'');
Parece que necesitarás el módulo de path
. ( path.normalize
en particular)
var path = require("path"),
fs = require("fs");
fs.readFile(path.normalize(__dirname + "/../../foo.bar"));
Prueba esto:
fs.readFile(__dirname + ''/../../foo.bar'');
Tenga en cuenta la barra inclinada al comienzo de la ruta relativa.
Puedes usar
path.join(__dirname, ''../..'');
Sé que es un poco exigente, pero todas las respuestas hasta ahora no son del todo correctas.
El objetivo de path.join () es eliminar la necesidad de que la persona que llama sepa qué separador de directorio usar (lo que hace que la plataforma de código sea independiente).
Técnicamente, la respuesta correcta sería algo así como:
var path = require("path");
fs.readFile(path.join(__dirname, ''..'', ''..'', ''foo.bar''));
Hubiera agregado esto como un comentario a la respuesta de Alex Wayne pero aún no lo suficiente.
EDITAR: según la observación del usuario1767586
Si no está seguro de dónde está el padre, esto le dará el camino;
var path = require(''path''),
__parentDir = path.dirname(module.parent.filename);
fs.readFile(__parentDir + ''/foo.bar'');
Si otro módulo llama al suyo y aún desea saber la ubicación del archivo principal que se está ejecutando, puede usar una modificación del código de @Jason:
var path = require(''path''),
__parentDir = path.dirname(process.mainModule.filename);
fs.readFile(__parentDir + ''/foo.bar'');
De esta forma obtendrás la ubicación del script que realmente se está ejecutando.
Use path.join http://nodejs.org/docs/v0.4.10/api/path.html#path.join
var path = require("path"),
fs = require("fs");
fs.readFile(path.join(__dirname, ''../..'', ''foo.bar''));
path.join()
manejará las barras path.join()
/ finales para usted y simplemente hará lo correcto y no tendrá que tratar de recordar cuándo existen barras inclinadas y cuándo no.