nodejs node node.js

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