node.js - nodejs - path node js windows
¿Cuál es la diferencia entre process.cwd() vs__dirname? (2)
Según el nodo js doc process.cwd()
cwd
es un método de process
objeto global, devuelve un valor de cadena que es el directorio de trabajo actual del proceso Node.js.
Según el nodo js __dirname __dirname
El nombre de directorio del script actual como un valor de cadena. __dirname no es en realidad global sino local para cada módulo.
Déjame explicarte con el ejemplo,
Supongamos que tenemos un archivo main.js
que se encuentra dentro de C:/Project/main.js
y que el node main.js
ejecutando, ambos valores devuelven el mismo archivo
o simplemente con la siguiente estructura de carpetas
Project
├── main.js
└──lib
└── script.js
main.js
console.log(process.cwd())
// C:/Project
console.log(__dirname)
// C:/Project
console.log(__dirname===process.cwd())
// true
Supongamos que tenemos otro archivo script.js
dentro de un subdirectorio del proyecto, es decir, C:/Project/lib/script.js
y el node main.js
que requieren script.js
main.js
require(''./assets/script.js'')
console.log(process.cwd())
// C:/Project
console.log(__dirname)
// C:/Project
console.log(__dirname===process.cwd())
// true
script.js
console.log(process.cwd())
// C:/Project
console.log(__dirname)
// C:/Project/lib
console.log(__dirname===process.cwd())
// false
Cuál es la diferencia entre
console.log(process.cwd())
y
console.log(__dirname);
He visto ambos utilizados en contextos similares.
process.cwd()
devuelve el directorio de trabajo actual,
Es decir, el directorio desde el que invocó el comando de node
.
__dirname
devuelve el nombre del directorio del directorio que contiene el archivo de código fuente de JavaScript