Diferencia entre __dirname y ./ en Node.js

Trabajar con cualquier tecnología requiere interactuar con archivos y directorios. Los archivos y directorios mantienen una estructura de árbol para facilitar el acceso. Trabajar con Node.js también requiere acceder a los archivos usando la ruta del archivo que se puede obtener usando diferentes comandos. Hay dos formas de obtener el directorio actual en Node.js. Sin embargo, son bastante diferentes entre sí.

  • __dirname
  • ./

El __dirname en un script de Node devuelve la ruta de la carpeta donde reside el archivo JavaScript actual. __filename y __dirname se utilizan para obtener el nombre de archivo y el nombre de directorio del archivo que se está ejecutando actualmente.

El ./ proporciona el directorio de trabajo actual. Funciona de manera similar al método process.cwd(). El directorio de trabajo actual es la ruta de la carpeta donde se ejecutó el comando de Node. Sin embargo, el directorio de trabajo actual puede cambiar durante la ejecución del script mediante el uso de la API process.chdir().
El único caso en el que ./ proporciona la ruta del archivo que se está ejecutando actualmente es cuando se usa con el comando require() que funciona en relación con el directorio de trabajo actual. El ./ nos permite importar módulos basados ​​en la estructura de archivos.

Tanto __dirname como ./ dan resultados similares cuando el Node se ejecuta en el mismo directorio que el archivo que se está ejecutando actualmente, pero producen resultados diferentes cuando el Node se ejecuta desde algún otro directorio.

__dirname ./
Proporciona la ruta absoluta del directorio que contiene el archivo que se está ejecutando actualmente. Se utiliza para mostrar la ruta donde se abre la terminal, que es el directorio de trabajo actual.
Devuelve un puntero a una string, es decir, el directorio principal del archivo que se está ejecutando actualmente. Devuelve un puntero a una string, es decir, el directorio de trabajo actual.
Funciona de manera similar a process.cwd() hasta que el Node se ejecuta desde un directorio que es diferente del directorio donde se almacena el archivo JavaScript. Funciona de manera similar a process.cwd() hasta que se usa con el comando require().

Ejemplo: Los siguientes ejemplos demuestran el funcionamiento de __dirname y ./ cuando el Node se ejecuta desde el mismo directorio donde se almacena el archivo JavaScript

Ejemplo 1:

// Node.js program to demonstrate the
// methods to display directory
   
// Include path module
var path = require("path");
  
// Methods to display directory
console.log("__dirname:    ", __dirname);
console.log("process.cwd() : ", process.cwd());
console.log("./ : ", path.resolve("./"));
console.log("filename: ", __filename);

Pasos para ejecutar:

  • Abra el editor de bloc de notas y pegue el siguiente código y guárdelo con la extensión .js. Por ejemplo:index.js
  • Ahora abra un símbolo del sistema y muévase al directorio donde existe el código.
  • Escriba node index.jsel comando para ejecutar el código.

Producción:
image

Ejemplo 2:

// Node.js program to demonstrate the
// methods to display directory
   
// Include path module
var path = require("path");
  
// Methods to display directory
console.log("__dirname:    ", __dirname);
console.log("process.cwd() : ", process.cwd());
console.log("./ : ", path.resolve("./"));
console.log("filename: ", __filename);

Pasos para ejecutar:

  • Abra el editor de bloc de notas y pegue el siguiente código y guárdelo con la extensión .js. Por ejemplo:index.js
  • Ahora abra un símbolo del sistema y, si su ruta es Escritorio, escriba cd .. para mover su directorio principal.
  • Escriba node Desktop/index.jsel comando para ejecutar el código.

Producción:

Publicación traducida automáticamente

Artículo escrito por Shreyasi_Chakraborty y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *