¿Cómo escribo esto para volver a los niveles de padre 2 para encontrar un archivo?
fs.readFile(__dirname + 'foo.bar');
javascript
node.js
filesystems
lujoso
fuente
fuente
fs.readFile(__dirname + '/../../foo.bar');
y funcionó.__dirname
fue algo así como'/foo/bar'
no'/foo/bar/'
.__dirname
puede parecer/path/to/your/dir
, si usted dice__dirname + ".."
que es/path/to/your/dir..
, que es un directorio que no existe, en lugar de/path/to/your
. El corte es importante.Utilice path.join http://nodejs.org/docs/v0.4.10/api/path.html#path.join
path.join()
manejará las barras diagonales / finales por usted y simplemente hará lo correcto y no tendrá que intentar recordar cuándo existen las barras diagonales finales y cuándo no.fuente
path.join
es la forma correcta, la respuesta aceptada no debe ser seguido, incluso desencadenaeslint
enairbnb-base preset
la regla de no-path-concat en particular__dirname
erahost/src/folder
y necesitabahost/folder
y esto funcionó para mí, no la respuesta OP.path.join(__dirname, '..', '..', 'foo.bar')
Sé que es un poco exigente, pero todas las respuestas hasta ahora no son correctas.
El punto de path.join () es eliminar la necesidad de que la persona que llama sepa qué separador de directorio usar (haciendo que la plataforma de código sea independiente).
Técnicamente, la respuesta correcta sería algo como:
¡Hubiera agregado esto como un comentario a la respuesta de Alex Wayne, pero todavía no tengo suficiente representante!
EDITAR: según la observación del usuario 1767586
fuente
La forma más fácil sería usar
path.resolve
:fuente
../
a la rutaParece que necesitarás el
path
módulo. (path.normalize
en particular)fuente
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:
De esa forma obtendrá la ubicación del script que se está ejecutando realmente.
fuente
Si no está seguro de dónde está el padre, esto le dará el camino;
fuente
Puedes usar
fuente
Estoy ejecutando la aplicación de electrones y puedo obtener la carpeta principal por path.resolve ()
Nivel padre 1:
path.resolve(__dirname, '..') + '/'
padres 2 niveles:
path.resolve(__dirname, '..', '..') + '/'
fuente
esto también funcionará:
fuente