node.js - nodejs - ¿Cuál es el directorio actual utilizado por las funciones del módulo fs?
npm (1)
¿Cuál es el directorio actual cuando se invoca un método en el módulo fs
en una aplicación típica node.js / Express? Por ejemplo:
var fs = require(''fs'');
var data = fs.readFile("abc.jpg", "binary");
¿Cuál es la carpeta predeterminada que se utiliza para localizar abc.jpg? ¿Depende de la ubicación de la carpeta del script que contiene?
¿Hay algún método para consultar el directorio actual?
Mi estructura de archivos es:
ExpressApp1/
app.js
routes/
members.js
En members.js tengo un fs.createWriteStream("abc")
y el archivo abc
se creó en ExpressApp1/
Es el directorio desde donde se inició el intérprete del nodo (también conocido como el directorio de trabajo actual), no el directorio de la ubicación de la carpeta del script (gracias, robertklep).
Además, el directorio de trabajo actual se puede obtener por:
process.cwd()
Para obtener más información, puede consultar: https://nodejs.org/api/fs.html
EDITAR: Debido a que inició app.js por el node app.js
en el directorio ExpressApp1
, cada ruta relativa será relativa a la carpeta "ExpressApp1", por eso fs.createWriteStream("abc")
creará una secuencia de escritura para escribir en un archivo ExpressApp1/abc
. Si desea escribir en ExpressApp1/routes/abc
, puede cambiar el código en members.js
a:
fs.createWriteStream(path.join(__dirname, "abc"));
Para más:
https://nodejs.org/docs/latest/api/globals.html#globals_dirname
https://nodejs.org/docs/latest/api/path.html#path_path_join_paths